找回密码
 加入
搜索
楼主: KLU3K

[图形处理] 【已解决】AU3能做出“鼠标划过水面”的动态效果么?(内详带图)

 火... [复制链接]
发表于 2010-8-17 15:08:44 | 显示全部楼层
似乎是bmp格式的问题,我也弄不清楚
发表于 2010-8-17 15:19:54 | 显示全部楼层
好像只能用bmp格式的图片
发表于 2010-8-17 17:50:13 | 显示全部楼层
本帖最后由 Duvet 于 2010-8-17 17:52 编辑

回复 45# xiaoy
四樓的代碼還有網路上找到的都是 Bmp:HBITMAP,如果要實現只能將jpg轉成bmp在調用
回复 48# sanmoking
persits.jpeg只能輸出jpg、gif的格式
  1. ;_JPG2BMP($jpg,$bmp) 函數取自 顽固不化 改成的
  2. ;http://www.autoitx.com/forum.php?mod=redirect&goto=findpost&ptid=11315&pid=115901&fromuid=7653106]
  3. #include <GUIConstantsEx.au3>
  4. #include <ScreenCapture.au3>
  5. #Include <WinAPI.au3>
  6. #include <GDIPlus.au3>

  7. Local $a = 497
  8. Local $b = 54

  9. _ScreenCapture_Capture(@TempDir & "\GDIPlus_Image0.bmp",0,0,$a,$b)
  10. _Photo_Flip(@TempDir & "\GDIPlus_Image0.bmp",1,@TempDir & "\GDIPlus_Image1.jpg")
  11. _JPG2BMP(@TempDir & "\GDIPlus_Image1.jpg",@TempDir & "\GDIPlus_Image1.bmp")

  12. $Form1 = GUICreate("",497,54)
  13. $t = _WinAPI_LoadImage(0,@TempDir & "\GDIPlus_Image1.bmp",0,0,0,0x2010)
  14. $d = DllOpen(@ScriptDir&"\waterctrl.dll")
  15. $d = DllCall($d,"int","enablewater","HWND",$Form1,"int",0,"int",0,"ptr",$t,"int",3,"int",50)
  16. GUISetState()
  17. While GUIGetMsg() <> $GUI_EVENT_CLOSE
  18.         Sleep(100)
  19. WEnd


  20. Func _Photo_Flip($Path,$Dire,$OutPath)
  21. If Not FileExists($Path) Then Return -1       
  22.         $Jpeg=_Photo_OpenCalss($Path)       
  23.         With $Jpeg
  24.                 If $Dire=1 Then
  25.                         .FlipV
  26.                 Else
  27.                         .FlipH
  28.                 EndIf
  29.                 .Save($OutPath)
  30.         EndWith
  31.         $Jpeg.Close
  32. EndFunc;;;;;;;上下左右翻转 _Photo_Flip("7.jpg","","x.jpg")

  33. Func _Photo_OpenCalss($Path)
  34.         If Not FileExists($Path) Then Return -1       
  35.         $Jpeg = ObjCreate("Persits.Jpeg")
  36.         If Not IsObj($Jpeg) Then
  37.                 FileCopy(@ScriptDir&"\aspjpeg.dll",@SystemDir,1)
  38.                 RunWait("Regsvr32 /s "& @SystemDir & "\aspjpeg.dll")
  39.                 RegWrite("HKLM\SOFTWARE\Persits Software\AspJpeg\RegKey","","REG_SZ","48958-77556-02411")
  40.                 $Jpeg = ObjCreate("Persits.Jpeg")
  41.         EndIf
  42.         If $Jpeg.Version = "1.9.0.0" Then $Jpeg.PreserveMetadata = True
  43.         $Jpeg.Interpolation=2 ;;;图像加强(0-2)
  44.         $Jpeg.Quality=100     ;;;;图片质量(0-100)
  45.         $Jpeg.Open ($Path)
  46.         Return $Jpeg
  47. EndFunc

  48. Func _JPG2BMP($jpg,$bmp)
  49.         Local $hImage, $CLSID
  50.         _GDIPlus_Startup()
  51.         $hImage = _GDIPlus_ImageLoadFromFile($jpg)
  52.         $CLSID = _GDIPlus_EncodersGetCLSID("BMP")
  53.         _GDIPlus_ImageSaveToFileEx($hImage, $bmp, $CLSID)
  54.         _GDIPlus_Shutdown()
  55. EndFunc   ;==>_JPG2BMP
复制代码
发表于 2010-8-17 20:50:25 | 显示全部楼层
回复  rolaka
Duvet 发表于 2010-8-17 14:44



    明白了 要用dllopen dllcall不行- -
发表于 2010-8-18 02:20:50 | 显示全部楼层
本帖最后由 afan 于 2010-8-18 11:09 编辑

根据Duvet 大虾调用dll的例子修改,将dll文件写进了函数“waterctrl.dll.au3”,不再需要dll文件,方便调用,需要的可以下载测试~
有时间再完善~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 贡献 +5 收起 理由
Duvet + 30 + 5

查看全部评分

发表于 2010-8-18 09:15:05 | 显示全部楼层
afan:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-8-18 10:01:11 | 显示全部楼层
回复 52# afan


A版就是牛X  效果很好哦。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +20 收起 理由
afan + 20 谢谢反馈

查看全部评分

发表于 2010-8-18 10:40:58 | 显示全部楼层
本帖最后由 afan 于 2010-8-18 11:12 编辑

回复 53# xiaoy

Au3Check 一直都对函数内申明的全局变量报错,完全可以无视~ 继续运行 或 直接运行
或者可以重现下载,我已修改了这个问题
发表于 2010-8-18 11:15:32 | 显示全部楼层
本帖最后由 afan 于 2010-8-18 13:04 编辑

回复 53# xiaoy


    话说 If $___sDll___Filename[0] = -1 Then ...怎么在你那成了 If $___sDll___Filename[0] = __1 Then ...,真是怪异哦

已增加详细参数,更方便调用。http://www.autoitx.com/thread-17705-1-1.html
发表于 2010-8-18 13:29:03 | 显示全部楼层
另外发现出错很可能是Au3版本过旧原因,可更换高版本测试
发表于 2010-8-19 12:55:55 | 显示全部楼层
感谢版主精心回复,支持!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-9-21 09:51 , Processed in 0.075254 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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