업로드 된 .JPG
이미지의 크기를이 방법으로 최대 너비로 조정했지만 이미지의 원본 크기가 kb보다 커졌습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 새로운 이미지를 저장할 때 내가해야 할 일이 있습니까?이미지 크기가 원래 C#보다 큰 파일 크기가되었습니다.
저는 PixelFormat
의 모든 종류의 조합을 시도했습니다. PixelFormat.Format16bppRgb555
예 : 소스 이미지 1200W 크기가 조절하려고 노력하는 .JPG
1,900w입니다 ...
-
563킬로바이트 소스 파일입니다 - 크기를 조정할 파일 9백26킬로바이트 이상인 경우에도 1.9MB
public static void ResizeToMaxWidth(string fileName, int maxWidth)
{
Image image = Image.FromFile(fileName);
if (image.Width > maxWidth)
{
double ratio = ((double)image.Width/(double)image.Height);
int newHeight = (int)Math.Round(Double.Parse((maxWidth/ratio).ToString()));
Bitmap resizedImage = new Bitmap(maxWidth, newHeight);
Graphics graphics = Graphics.FromImage(resizedImage);
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High
Rectangle rectDestination = new Rectangle(0, 0, maxWidth, newHeight);
graphics.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
graphics.Dispose();
image.Dispose();
resizedImage.Save(fileName);
resizedImage.Dispose();
}
image.Dispose();
}
jpg 파일을 사용하고 있습니까? 디스크 크기에 대해 이야기하고 있습니까? 주로 인코딩 품질 설정에 의해 결정되는 jpg 용입니다. 그걸 제어하기 위해 explict 인코더를 추가해야합니다! – TaW
저는 주로 jpg를 업로드하고 있음을 반영하여 질문을 편집했습니다. 감사의 말을 추가하십시오! – Dave
비트 맵 클래스가 파일 확장명의 형식을 검색하지 않습니다. jpeg 파일 확장명을 가진 png 형식으로 저장하는 것이 좋습니다. save 메소드에 두 번째 매개 변수를 제공해야합니다. – john