用代码减小图片了的分辨率,但减小后的图片反而比原图还大;
原图是微信发过来的图片
大小 393K,
位深度 24
修改后的图片反而有
大小 2.5M;
位深度 32
比对了两个图片的不同,发现 位深度 不同;想求助 如何用代码修改位深度;
这个代码修改后是1.75MB
mark 缩放图片 Dim file As String = "d:\test.jpg" Dim img As image = getImage(file) Dim bmp As bitmap If img.width > 800 Then If 800 * (img.height / img.width) > 600 Then bmp = new bitmap(img, 800*(600/(800*(img.height/img.width))), 600) Else bmp = new bitmap(img, 800, 800 * (img.height / img.width)) End If End If bmp.save("d:\缩略图.jpg") bmp.Dispose |
[此贴子已经被作者于2024/8/15 10:34:48编辑过]
换种方式试试
Dim file As String = "d:\test.jpg"
Dim img As image = getImage(file)
Dim bmp As bitmap
If img.width > 800 Then
If 800 * (img.height / img.width) > 600 Then
bmp = new bitmap(800*(600/(800*(img.height/img.width))), 600,PixelFormat.Format24bppRgb)
Else
bmp = new bitmap(800, 800 * (img.height / img.width),PixelFormat.Format24bppRgb)
End If
Dim g = Graphics.FromImage(bmp)
Dim rectSrc As New System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height)
g.DrawImage(bmp, rectSrc , rectSrc, GraphicsUnit.Pixel)
g.Dispose()
bmp.Save("d:\缩略图.jpg",img.RawFormat)
bmp.Dispose
End If