2014-06-19 2 views
0

system.drawing을 사용하여 업로드 된 이미지의 크기를 늘리려고합니다. 그것은 작동하지만 포토샵을 사용하여 작업하는 것보다 파일 크기가 훨씬 큽니다. 내가 대처해야 할 것인가 또는 파일 크기를 줄이는 방법이 있습니까?Image upscale using system.drawing은 Photoshop보다 훨씬 큰 파일 크기를 제공합니다.

이 코드를 사용하여 Drawing2d 설정을 조정했지만 상당한 차이가 없습니다.

resizedImage = New Bitmap(newWidth, newHeight, image.PixelFormat) 
graphics = graphics.FromImage(resizedImage) 

graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality 
graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality 
graphics.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic 
graphics.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality 

graphics.FillRectangle(Brushes.White, 0, 0, newWidth, newHeight) 
graphics.DrawImage(image, 0, 0, newWidth, newHeight) 

더 나은 결과를 얻으려면 전용 라이브러리를 사용해야합니까?

답변

2

여기에있는 매개 변수는 "이미지 파일 크기"가 아니라 이미지의 "렌더링"에 영향을줍니다.

은 사용, 저장할 때 JPEG의 품질 드롭 다운해야 할 이미지 파일의 크기에 영향을하려면 Image.Save Method

이 이미지 파일을 삭제할 수 있습니다 방법에 MSDN Example에서 잘린 코드 크기.

// Save the bitmap as a JPEG file with quality level 25. 
    myEncoderParameter = new EncoderParameter(myEncoder, 25L); 
    myEncoderParameters.Param[0] = myEncoderParameter; 
    // and now save it to the file 
    myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters); 
+0

정말 고맙습니다. 이미지 조작에 대해 아무 것도 모르겠습니다. 이것은 큰 도움이되었습니다 – DavidB

+0

@DavidB 당신은 오신 것을 환영합니다. – Aristos