找回密码
 加入
搜索
查看: 9033|回复: 14

[图形处理] 求救!请问BMP转JPG函数如何控制生成JPG图像的质量?(已解决)

 火.. [复制链接]
发表于 2010-8-17 23:14:12 | 显示全部楼层 |阅读模式
本帖最后由 txm888 于 2010-8-21 13:07 编辑

求救!请问BMP转JPG函数如何控制生成JPG图像的质量?
已有转换函数如下:

;BMP转JPG函数
#include <GDIPlus.au3>

_BmpToJpg("a.bmp", "b.jpg")
Func _BmpToJpg($Bmp,$Jpg)
        Local $hImage, $CLSID
        _GDIPlus_StartUp()
        $hImage = _GDIPlus_ImageLoadFromFile($Bmp)
        $CLSID = _GDIPlus_EncodersGetCLSID("JPG")
        _GDIPlus_ImageSaveToFileEx($hImage,$Jpg, $CLSID)
        _GDIPlus_ShutDown()
EndFunc

先在这里谢谢啦~~~

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-8-18 18:32:54 | 显示全部楼层
似乎不能...:)
发表于 2010-8-18 18:34:10 | 显示全部楼层
回复 2# itljl


    肯定可以。
_GDIPlus_ParamAdd
 楼主| 发表于 2010-8-20 19:48:56 | 显示全部楼层
回复 3# afan


    afan大师,,不好意思,这几天我都不在,没法上网,,谢谢你的答案,我下去在研究研究,如果有结果了,就上来回复,谢谢!
 楼主| 发表于 2010-8-20 19:50:14 | 显示全部楼层
回复 3# afan


    或者,大师你能举个例吗?该UDF里边儿的函数我个个都拿来用了的,感觉没什么效果
发表于 2010-8-20 21:00:20 | 显示全部楼层
本帖最后由 afan 于 2010-8-20 21:13 编辑
#include <GDIPlus.au3>

_Pic2jpg('a.BMP', 'b.jpg', 60) ;质量60

Func _Pic2jpg($sFileName, $oFileName, $iQuality = 100)
        ;Afan提示:转换任意格式图片为jpg格式,可设置$iQuality质量参数,0-100
        ;成功返回True;失败返回False,并设置@Error = 1
        _GDIPlus_Startup()
        Local $hImage = _GDIPlus_ImageLoadFromFile($sFileName)
        If $iQuality < 0 Then $iQuality = 0
        If $iQuality > 100 Then $iQuality = 100
        Local $giQuality = $iQuality, $pParams
        Local $tParams = _GDIPlus_ParamInit(1)
        Local $tData = DllStructCreate('int Quality')
        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')
        Local $save = _GDIPlus_ImageSaveToFileEx($hImage, $oFileName, $CLSID, $pParams)
        _GDIPlus_Shutdown()
        If $save = False Then Return SetError(1, 0, False)
        Return True
EndFunc   ;==>_Pic2jpg
 楼主| 发表于 2010-8-21 13:07:20 | 显示全部楼层
回复 6# afan


    跪谢了,,afan大师真是好人啊,,谢谢赐教!
发表于 2010-8-21 13:10:12 | 显示全部楼层
回复 7# txm888


    岂敢当 _ _ ||   一届菜鸟而已
发表于 2010-8-21 21:35:45 | 显示全部楼层
回复 8# afan


感谢啊,好人。
我整整用了一个小时去研究 _GDIPlus_ParamAdd 来实现质量设置都没有成功。

我想再请教一下,A版是怎么研究出来的?能给个大略的思路过程吗??
发表于 2010-12-31 00:28:36 | 显示全部楼层
知识真是越学越多啊,看了高手的东西后,似乎明白了,又似乎糊涂了
发表于 2011-4-9 19:44:43 | 显示全部楼层
a版太谦虚了
发表于 2011-4-11 15:33:43 | 显示全部楼层
好东西啊,值得学习
发表于 2015-3-23 12:18:21 | 显示全部楼层
谢谢楼主....一定要顶!
发表于 2015-4-12 19:10:48 | 显示全部楼层
默默等等楼下的回复
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 05:56 , Processed in 0.094621 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表