웹 사이트를 개발할 때 썸네일을 생성하는 것은 매우 일반적이고 실용적인 기능입니다. 과거에는 ASP의 COM 구성 요소를 통해서만 이를 수행할 수 있었지만 이제는 강력한 클래스 라이브러리를 사용하여 .NET에서 쉽게 구현할 수 있습니다. 전체 코드는 아래에 게시되어 있습니다(상세 설명 포함). 인터넷의 일부 기사와 .net SDK 관련 콘텐츠를 참조하면 QQROOM 네트워크 홈에 사진을 업로드하는 데 모두 사용됩니다.
/// <요약>
/// 썸네일 생성
///
/// 소스 이미지 경로(물리적 경로)
/// 썸네일 경로(물리적 경로)
/// 썸네일 너비
/// 썸네일 높이
/// 썸네일 생성 방법
공개 정적 무효 MakeThumbnail(문자열 원본 이미지 경로, 문자열 썸네일 경로, 정수 너비, 정수 높이, 문자열 모드)
{
이미지 원본이미지 = Image.FromFile(originalImagePath);
int 너비 = 너비;
int 높이 = 높이;
정수 x = 0;
int y = 0;
int ow = OriginalImage.Width;
int oh = originalImage.Height
스위치(모드)
{
case "HW"://높이 및 너비 배율 지정(변형 가능)
부서지다;
case "W"://폭과 높이를 비율에 맞춰 지정
toheight = originalImage.Height * 너비/originalImage.Width;
부서지다;
case "H"://높이와 너비를 비율에 맞춰 지정
towidth = originalImage.Width * 높이/originalImage.Height;
부서지다;
Case "Cut"://절단할 높이와 폭을 지정합니다(변형 없이).
if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
{
아 = 원본이미지.높이;
ow = originalImage.Height*towidth/toheight;
와이 = 0;
x = (originalImage.Width - ow)/2;
}
또 다른
{
ow = 원본이미지.폭;
아 = 원본이미지.폭*높이/너비;
x = 0;
y = (originalImage.Height - 오)/2;
}
부서지다;
기본 :
부서지다;
}
//새 bmp 그림 생성
Image bitmap = new System.드로잉.Bitmap(towidth,toheight);
//새 드로잉 보드를 만듭니다.
Graphics g = System. Drawing.Graphics.FromImage(bitmap);
//고품질 보간 방법 설정
g.InterpolationMode = System.드로잉.드로잉2D.InterpolationMode.High
//매끄러움을 보여주기 위해 높은 품질, 낮은 속도를 설정합니다.
g.SmoothingMode = System.드로잉.드로잉2D.SmoothingMode.HighQuality;
//캔버스를 지우고 투명한 배경색으로 채웁니다.
g.Clear(Color.Transparent);
//원본 이미지의 지정된 부분을 지정된 위치와 크기에 그립니다.
g.DrawImage(originalImage, new Rectangle(0, 0, 너비, 높이),
새로운 직사각형(x, y, ow,oh),
GraphicsUnit.Pixel)을
시도해 보세요
.
{
//썸네일을 jpg 형식으로 저장
bitmap.Save(thumbnailPath, System.드로잉.Imaging.ImageFormat.Jpeg);
}
catch(System.Exception e)
{
전자를 던져;
}
마지막으로
{
원본이미지.Dispose();
비트맵.Dispose();
g.Dispose();
}
}
주요 메서드 Graphics.DrawImage에 대해서는 ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfsystem드로잉그래픽sclassdrawimagetopic11.htm
참조하세요.