本帖最后由 haijie1223 于 2012-3-22 15:11 编辑
#include <GDIPlus.au3>
Local $bmpfile,$jpgfile
$bmpfile="test.bmp"
$jpgfile="test.jpg"
_BMP2JPG($bmpfile, $jpgfile)
Func _BMP2JPG($bmp, $jpg)
Local $hImage, $CLSID
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($bmp)
$CLSID = _GDIPlus_EncodersGetCLSID("JPG");图片质量失真较大
;~ $CLSID = _GDIPlus_EncodersGetCLSID("BMP");失真很小
_GDIPlus_ImageSaveToFileEx($hImage, $jpg, $CLSID)
_GDIPlus_Shutdown()
EndFunc ;==>_BMP2JPG
如题:发现把图片格式转化过程中,如果图片转码类型为JPG时,图片质量失真较大,如果用BMP转码类型,失真就很小。
请看代码测试,请问这是为何?
我试过添加质量控制:$tData = DllStructCreate("int Quality")
DllStructSetData($tData, "Quality", 100)
$tParams = _GDIPlus_ParamInit(1)
_GDIPlus_ParamAdd($tParams, 100, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Quality"))
_GDIPlus_ImageSaveToFileEx($hImage, @ScriptDir & "\test.jpg", $sCLSID, DllStructGetPtr($tParams))
没有作用。
请高手指点一下,如何添加质量控制?使得在转化过程中能自由控制质量失真度。 |