我使用以下代码来缩小图片的大小。它工作正常。我的问题是,3MB的图片将缩小到470~KB。有没有办法进一步减小文件大小?我玩了有关插值模式,平滑模式和其他设置的所有可能设置,但结果图像仍然是大约400 kb。这些图像用于报纸网站,因此也应保留其质量。
EDIT 我的图像尺寸为4000 x 3000像素,我缩小到650像素宽。
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 :(得分:0)
如果您使用具有EncoderParametres选项的Image.Save方法,则可以缩小尺寸。
只是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需要显示更多的细节,但最终尺寸是通过我在这里的电话改变。