以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  图片大小  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=162245)

--  作者:qaz17909
--  发布时间:2021/4/10 8:20:00
--  图片大小
将一个大小为71k的原图(像素为600*800)用如下代码缩小后,新图的大小反而变大为819k(像素为500*667),通过属性发现是位深度发生变化由24变大为32,可否设置该值使图片大小变小?
Dim file As String = "d:\\test.jpg"
Dim img As image = getImage(file)
Dim bmp As new bitmap(img, 500, 500 * (img.height / img.width))
bmp.save("d:\\缩略图.jpg")

--  作者:有点蓝
--  发布时间:2021/4/10 11:16:00
--  
试试:bmp.save("d:\\缩略图.jpg",img.RawFormat)

或者试试
Dim file As String = "d:\\test.jpg"
Dim bmpSrc As New Bitmap(file)
Dim bmpDest As New Bitmap(500, 500 * (bmpSrc.height / bmpSrc.width),System.Drawing.Imaging.PixelFormat.Format24bppRgb)
Dim g = Graphics.FromImage(bmpDest)
Dim rectDest As New System.Drawing.Rectangle(0, 0, 100, 100)
Dim rectSrc As New System.Drawing.Rectangle(0, 0, bmpSrc.Width, bmpSrc.Height)
g.DrawImage(bmpSrc, rectDest, rectSrc, GraphicsUnit.Pixel)
g.Dispose()
bmpDest.Save("d:\\缩略图.jpg",img.RawFormat)