VB 如何用GDI+修改图片的分辨率并无损压缩保存

2025-03-21 06:32:25
推荐回答(1个)
回答1:

多加个引用
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不会挂