2013-02-17 2 views
0

아래 코드를 사용하여 이미지 크기를 줄입니다. 그것은 잘 작동합니다. 내 문제는 3MB 사진이 470KB 이하로 축소된다는 것입니다. 파일 크기를 더 줄이는 방법이 있습니까? interpolationmode, smoothingmode 및 다른 것들에 관한 모든 가능한 설정으로 연주했지만 결과 이미지는 여전히 약 400kb입니다. 이러한 이미지는 신문 웹 사이트에서 사용되므로 자신의 자질을 보존해야합니다.ASP.NET에서 이미지 크기 줄이기 (012)


편집 내 이미지 크기는 4000 X 3000 픽셀이며, 나는 넓은 650 픽셀까지 확장하고있다. 당신이 EncoderParametres 옵션을 가지고있는 Image.Save 방법을 사용하는 경우


Dim image_p As Image = _ 
    ResizeImage(img, Convert.ToInt32(pWidth), Convert.ToInt32(pHeight)) 

Private Function ResizeImage(_ 
    original_img As Bitmap, width As Integer, height As Integer) As Bitmap 
     Dim callback As New Image.GetThumbnailImageAbort(AddressOf GetThumbAbort) 

     Dim new_img As New Bitmap(original_img, width, height) 'new blank bitmap' 

     Dim g As Graphics = Graphics.FromImage(new_img) 

     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High 
     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias 
     g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighSpeed 
     g.CompositingQuality = _ 
      System.Drawing.Drawing2D.CompositingQuality.HighSpeed 
     g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver 
     g.DrawImage(original_img, 0, 0, width, height) 
     Return new_img 
End Function 
+0

"이 이미지는 신문 웹 사이트에서 사용되므로 그 품질을 유지해야합니다"는 의미는 무엇입니까? 뭐라구? – Will

+0

어떤 파일 형식을 사용하고 있습니까? 이미지 예제가 있습니까? 전체 치수 및 색상 깊이는 무엇입니까? 650x? x? – Will

+0

@Will 이미지 형식은 jpg입니다. 내가 멘토하는 것에 관해서; 이러한 이미지는 웹 사이트의 첫 페이지에서 사용되므로 저 품질 압축을 할 여유가 없습니다. (내가 말하면 사이트에 업로드 된 모든 사진은 약 3MB이고 자르기를 사용하여 650 x 300 크기로 축소됩니다. –

답변

0

당신은 크기를 확장 할 수 있습니다.

그냥 a를 MSDN example의 코드의 일부 :

'Save the bitmap as a JPEG file with quality level 50. 
myEncoderParameter = New EncoderParameter(myEncoder, CType(50L, Int32)) 
myEncoderParameters.Param(0) = myEncoderParameter 
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters) 

참고 : 당신이 사용하는 다른 매개 변수는 이미지의 구성, 당신은 JPG지는 최종 크기에 영향을 미칩니다. 품질에 따라 크기에 영향을 미치고 jpeg에서 자세한 내용을 표시해야하기 때문에 크기가 커질수록 선명도는 높아지지만 최종 크기는 여기있는 호출에 따라 변경됩니다.

관련 문제