以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何修改图片的位深度 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193083) |
|
-- 作者:流水 -- 发布时间:2024/8/15 9:49:00 -- [求助]如何修改图片的位深度 用代码减小图片了的分辨率,但减小后的图片反而比原图还大; 原图是微信发过来的图片 大小 393K, 位深度 24 修改后的图片反而有 大小 2.5M; 位深度 32 比对了两个图片的不同,发现 位深度 不同;想求助 如何用代码修改位深度;
|
|
-- 作者:有点蓝 -- 发布时间:2024/8/15 9:55:00 -- 使用了什么代码? |
|
-- 作者:流水 -- 发布时间:2024/8/15 10:34:00 -- 这个代码修改后是1.75MB
[此贴子已经被作者于2024/8/15 10:34:48编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2024/8/15 12:03:00 -- 换种方式试试 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 |
|
-- 作者:流水 -- 发布时间:2024/8/15 13:32:00 -- 这个可以,谢谢 |