找回密码
 加入
搜索
查看: 4209|回复: 7

[图形处理] 请教,有支持TIFF格式的GUICtrlCreatePic函数吗?[已解决]

  [复制链接]
发表于 2010-9-28 23:08:20 | 显示全部楼层 |阅读模式
本帖最后由 CHEARV 于 2010-10-2 19:55 编辑

大家好,我想写一个显示图片的程序,我的图片全部是TIFF格式的,GUICtrlCreatePic不支持。请问,有其他好的办法显示TIFF格式的图片吗?

评分

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

查看全部评分

发表于 2010-9-29 00:10:58 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GDIPlus.au3>

GUICreate("", 377, 257, 192, 124)
_GUICtrlCreatePNG(GUICtrlCreatePic("", 5, 10, 363, 240), @ScriptDir & '\1.TIFF')
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd

Func _GUICtrlCreatePNG($Handle, $sImage)
        If Not IsHWnd($Handle) Then $Handle = GUICtrlGetHandle($Handle)
        _GDIPlus_Startup()
        Local $hImages = _GDIPlus_BitmapCreateFromFile($sImage)
        _WinAPI_SetWindowLong($Handle, -16, BitOR(_WinAPI_GetWindowLong($Handle, -16), Hex($SS_BITMAP)))
        _WinAPI_DeleteObject(_SendMessage($Handle, 0x0172, 0, 0))
        _SendMessage($Handle, 0x0172, 0, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImages))
        _GDIPlus_BitmapDispose($hImages)
        _GDIPlus_Shutdown()
EndFunc

评分

参与人数 3金钱 +70 贡献 +5 收起 理由
CHEARV + 10 谢谢帮忙
C.L + 30 + 5 学习了
afan + 30

查看全部评分

 楼主| 发表于 2010-9-29 20:40:31 | 显示全部楼层
本帖最后由 CHEARV 于 2010-9-29 23:29 编辑

谢谢破帽遮颜 ,成功了。不过,我还是看不懂代码。 大概意思是通过子函数在内存当中转换成BMP格式再用来显示是吧。

    再想请教一下,是不是可以这样理解。_GUICtrlCreatePNG ( 控件ID, 文件名 )的功能就相当于支持TIFF格式的 GUICtrlSetImage ( 控件ID, 文件名 )?
    另外,我感觉他显示图片没有ACDSEE快, ACDSEE显示图片是一点就出来。而这里能感觉到闪烁一下,感觉就像一幅卷好的画瞬间从屏幕最上方放下来一样。这个速度能不能改进一下?
发表于 2010-9-29 21:26:33 | 显示全部楼层
回复 2# 破帽遮颜

这种转换方法我还是第一次见,学习了
发表于 2010-9-30 07:38:12 | 显示全部楼层
回复 2# 破帽遮颜

学习了~·
还是第一次见这样子整合的。
发表于 2010-9-30 08:47:11 | 显示全部楼层
呵呵好东西啊正需要。。
发表于 2010-10-4 15:20:15 | 显示全部楼层
加载PNg也能用在TITF,见识了
发表于 2011-4-7 23:04:34 | 显示全部楼层
有创意,但如果图片很大,那不是效率很低啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 16:11 , Processed in 0.090634 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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