VB 如何用GDI+修改图片的分辨率并无损压缩保存
答案:1 悬赏:40
解决时间 2021-01-10 02:11
- 提问者网友:雾里闻花香
- 2021-01-09 03:34
VB 如何用GDI+修改图片的分辨率并无损压缩保存
最佳答案
- 二级知识专家网友:痴妹与他
- 2021-01-09 03:54
多加个引用
Private Declare Function GdipCreateBitmapFromFile Lib "GDIPlus" (ByVal filename As Long, Bitmap As Long) As Long
原来的代码对照下
Public Sub SaveJPG(ByVal pict As StdPicture, ByVal filename As String, Optional ByVal Quality As Byte = 80, Optional ByVal DPI As Single = 0)
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
tSI.GdiplusVersion = 1
lRes = GdiplusStartup(lGDIP, tSI)
If lRes = 0 Then
' lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)
lRes = GdipCreateBitmapFromFile(StrPtr("D:\test\JW--71.jpg"), lBitmap)
后面的不动,你把过程引入的变量pict 去掉 写个新的读取图片路径变量,这个你应该小Ks
我测试下,5XXX X 7XXXX 的 图 没问题, 7600 X 12500 极限图 就挂了, 这大图对.net也是极限了。不过.net不会挂追问整出来了。确实在1万左右的像素时,有时会挂,特别是超出1万5时常挂!追答如果处理超大图 就用.net来搞吧, 不转新平台也不行了。开始是郁闷点 多交流慢慢就适应了。来自:求助得到的回答
Private Declare Function GdipCreateBitmapFromFile Lib "GDIPlus" (ByVal filename As Long, Bitmap As Long) As Long
原来的代码对照下
Public Sub SaveJPG(ByVal pict As StdPicture, ByVal filename As String, Optional ByVal Quality As Byte = 80, Optional ByVal DPI As Single = 0)
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
tSI.GdiplusVersion = 1
lRes = GdiplusStartup(lGDIP, tSI)
If lRes = 0 Then
' lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)
lRes = GdipCreateBitmapFromFile(StrPtr("D:\test\JW--71.jpg"), lBitmap)
后面的不动,你把过程引入的变量pict 去掉 写个新的读取图片路径变量,这个你应该小Ks
我测试下,5XXX X 7XXXX 的 图 没问题, 7600 X 12500 极限图 就挂了, 这大图对.net也是极限了。不过.net不会挂追问整出来了。确实在1万左右的像素时,有时会挂,特别是超出1万5时常挂!追答如果处理超大图 就用.net来搞吧, 不转新平台也不行了。开始是郁闷点 多交流慢慢就适应了。来自:求助得到的回答
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯