Foxtable(狐表)用户栏目专家坐堂 → [求助]如何修改图片的位深度


  共有479人关注过本帖树形打印复制链接

主题:[求助]如何修改图片的位深度

帅哥哟,离线,有人找我吗?
流水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:3076 威望:0 精华:0 注册:2019/7/19 15:14:00
[求助]如何修改图片的位深度  发帖心情 Post By:2024/8/15 9:49:00 [只看该作者]

用代码减小图片了的分辨率,但减小后的图片反而比原图还大;
原图是微信发过来的图片 
大小 393K,
位深度 24

修改后的图片反而有 
大小 2.5M;
位深度 32

比对了两个图片的不同,发现 位深度 不同;想求助 如何用代码修改位深度;

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/15 9:55:00 [只看该作者]

使用了什么代码?

 回到顶部
帅哥哟,离线,有人找我吗?
流水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:3076 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2024/8/15 10:34:00 [只看该作者]

这个代码修改后是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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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(bmprectSrc , rectSrc, GraphicsUnit.Pixel)
g.Dispose()
bmp.Save("d:\缩略图.jpg",img.RawFormat)
bmp.Dispose
End If


 回到顶部
帅哥哟,离线,有人找我吗?
流水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:3076 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2024/8/15 13:32:00 [只看该作者]

这个可以,谢谢

 回到顶部