求助 JPG转 JPG 改变尺寸(分辨率) 的方法??试过很多都不行
网上有很多 可以改变分辨率的但是……我的图档是JPG 我想转成JPG 在这边都会出问题
使用 BMP 图档 转 JPG 可以正常
但是 使用 JPG 转 JPG 会出问题
附上 网上找的到的范本…………..
有人可以告诉我 出了什么问题呢 为何 JPG 转 JPG 这些UDF 都不可以用呢??Func _PIC2JPG($sFile, $sFile_new, $new_W, $new_H, $IQUALITY = 100)
_GDIPlus_Startup()
Local $HIMAGE = _GDIPlus_ImageLoadFromFile($sFile)
Local $GIQUALITY = $IQUALITY, $PPARAMS
Local $TPARAMS = _GDIPlus_ParamInit(1)
Local $TDATA = DllStructCreate("int Quality")
Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($HIMAGE)
Local $hBmp = _GDIPlus_BitmapCreateFromGraphics($new_W, $new_H, $hGraphics)
Local $hImage_New = _GDIPlus_ImageGetGraphicsContext($hBmp)
DllStructSetData($TDATA, "Quality", $GIQUALITY)
_GDIPlus_ParamAdd($TPARAMS, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, DllStructGetPtr($TDATA))
If IsDllStruct($TPARAMS) Then $PPARAMS = DllStructGetPtr($TPARAMS)
Local $CLSID = _GDIPlus_EncodersGetCLSID("JPG")
_GDIPlus_GraphicsDrawImageRect($hImage_New, $HIMAGE, 0, 0, $new_W, $new_H)
Local $SAVE = _GDIPlus_ImageSaveToFileEx($hBmp, $sFile_new, $CLSID, $PPARAMS)
_GDIPlus_GraphicsDispose($hImage_New)
_GDIPlus_BitmapDispose($hBmp)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($HIMAGE)
_GDIPlus_Shutdown()
If $SAVE = False Then Return SetError(1, 0, False)
Return True
EndFunc ;==>_PIC2JPG
Func _PicChangeSize($sFile, $sFile_new, $new_W, $new_H)
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sFile)
MsgBox(0,"",$hImage)
Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hImage)
MsgBox(0,"",$hGraphics)
Local $hBmp = _GDIPlus_BitmapCreateFromGraphics($new_W, $new_H, $hGraphics)
MsgBox(0,"",$hBmp)
Local $hImage_New = _GDIPlus_ImageGetGraphicsContext($hBmp)
_GDIPlus_GraphicsDrawImageRect($hImage_New, $hImage, 0, 0, $new_W, $new_H)
_GDIPlus_ImageSaveToFile($hBmp, $sFile_new)
_GDIPlus_GraphicsDispose($hImage_New)
_GDIPlus_BitmapDispose($hBmp)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
EndFunc ;==>_PicChangeSize
用第一个函数就行了啊
试过可行啊 建议楼主升级一下你的AU3版本,第一个函数我是在3.3.6.1版本下写的,测试可用。现在用3.3.9.4测试也可用~ 回复 4# haijie1223
老大你的 作業系統是 XP 嗎 回复 5# kk_lee69
是的 XP sp3 回复 6# haijie1223
是怪了~~小弟測試了公司至少10幾台的XP電腦 包括簡體 繁體都沒有可以過得
測試了3.3.6 3.3.8 3.3.10 3.3.12四個 AUTOIT 版本 就是沒有 可以過得
到底是哪裡出問題呢?? 圖片嗎?? 回复 7# kk_lee69
测试OK啊,请将你的测试语句发出来看下。 本帖最后由 kk_lee69 于 2014-6-24 15:00 编辑
回复 8# haijie1223
老大 大概找到原因了~~~詳情 請看
http://www.autoitx.com/thread-44623-1-1.html
我查了一下 我那個檔案 是 灰階的 JPG 檔我把檔案 轉換成 全彩的 就不會有問題了
但是 原因是甚麼我就不懂了~~~我需要 灰階 的 JPG 也可以轉的
語法只有一行 你的 UDF 外 只有
_PIC2JPG('123.jpg', '888.jpg', 375, 174,100) 向LZ学习中。 实在不行就用ImageMagick.dll吧 应该颜色有关
页:
[1]