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

你回答我的提问:http://zhidao.baidu.com/question/1667685382747066387.html?quesup2&oldq=1发现一个问... 你回答我的提问:http://zhidao.baidu.com/question/1667685382747066387.html?quesup2&oldq=1
发现一个问题,就是当原始图片的像素太大,比如大于六七千像素时,图片框出现无法创建AutoRedraw对象,导致无法保存图像!怎么修正呢?也就是说,采用何种方式,不利用图片框来加载图文文件,而是直接读取图片文件数据入内存的方式,可能就会避免这种现象的发生?
展开
 我来答
梦归三清
2013-11-20 · TA获得超过1381个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:226万
展开全部
多加个引用
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来搞吧, 不转新平台也不行了。开始是郁闷点 多交流慢慢就适应了。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式