• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[老狼] [老狼][源码分享]----找图并点击图片中心点----匆匆十年(53) [复制链接]

1#
实现效果:

  • 找到图片,点击图片中心点
  • 图片大小不固定
  1. PutAttachment "c:\图片", "*.bmp"'释放图片到本地,同时解决使用附件路径找图找不到的Bug
  2. 数组 = lib.文件.遍历指定目录下所有文件名("C:\图片")'遍历所有图片名称
  3. For i = 0 To UBound(数组) - 1
  4. 数组(i)=数组(i)&"|"&bmp尺寸("C:\图片\"&数组(i))'获取图片的尺寸
  5. TracePrint 数组(i)
  6. Next
  7. Call 找图("1.bmp")'调用sub找图
  8. Sub 找图(图名)
  9. FindPic 0,0,1024,768,"C:\图片\"&图名,0.9,intX,intY'找图命令
  10. If intX > 0 And intY > 0 Then '找到图片判断
  11. TracePrint intx & "," & inty'图片左上角坐标
  12. 查询 = Filter(数组, 图名)'通过Filter返回包含图片名称的对应内容
  13. TracePrint intx+ (Split(查询(0),"|")(1)/2)&","&inty+(Split(查询(0),"|")(2)/2)'intx,inty加上偏移量(图片长/2,图片高/2)
  14. End If
  15. End Sub
  16. Function bmp尺寸(bmp_file)
  17. Set ado = CreateObject("ADODB.Stream")
  18. ado.Type = 1
  19. ado.Open
  20. ado.LoadFromFile bmp_file
  21. ado.Read(2)
  22. ado.Read(12)
  23. width1 = CByte(AscB(ado.Read(1)))
  24. width2 = CByte(AscB(ado.Read(1)))
  25. width3 = CByte(AscB(ado.Read(1)))
  26. width4 = CByte(AscB(ado.Read(1)))
  27. width = width4 * 256 * 256 * 256 + width3 * 256 * 256 + width2 * 256 + width1
  28. height1 = CByte(AscB(ado.Read(1)))
  29. height2 = CByte(AscB(ado.Read(1)))
  30. height3 = CByte(AscB(ado.Read(1)))
  31. height4 = CByte(AscB(ado.Read(1)))
  32. height = height4 * 256 * 256 * 256 + height3 * 256 * 256 + height2 * 256 + height1
  33. ado.Close
  34. bmp尺寸 = width &"|"& height
  35. End Function
复制代码
PutAttachment "c:\图片", "*.bmp"
数组 = lib.文件.遍历指定目录下所有文件名("C:\图片")
For i = 0 To UBound(数组) - 1
数组(i)=数组(i)&"|"&bmp尺寸("C:\图片\"&数组(i))
TracePrint 数组(i)
Next
Call 找图("1.bmp|2.bmp|3.bmp")'大漠找多图写法
Sub 找图(图名)
dm_ret = dm.FindPic(0,0,2000,2000,图名,"000000",0.9,0,intX,intY)
If intX >= 0 and intY >= 0 Then
分割 = split(图名, "|")(dm_ret)'大漠找到会返回图片序号到dm_ret变量,利用其作为下标分割出对应图片名称
TracePrint intx & "," & inty
查询 = Filter(数组, 分割)
TracePrint intx+ (Split(查询(0),"|")(1)/2)&","&inty+(Split(查询(0),"|")(2)/2)
End If
End Sub
Function bmp尺寸(bmp_file)
Set ado = CreateObject("ADODB.Stream")
ado.Type = 1
ado.Open
ado.LoadFromFile bmp_file
ado.Read(2)
ado.Read(12)
width1 = CByte(AscB(ado.Read(1)))
width2 = CByte(AscB(ado.Read(1)))
width3 = CByte(AscB(ado.Read(1)))
width4 = CByte(AscB(ado.Read(1)))
width = width4 * 256 * 256 * 256 + width3 * 256 * 256 + width2 * 256 + width1
height1 = CByte(AscB(ado.Read(1)))
height2 = CByte(AscB(ado.Read(1)))
height3 = CByte(AscB(ado.Read(1)))
height4 = CByte(AscB(ado.Read(1)))
height = height4 * 256 * 256 * 256 + height3 * 256 * 256 + height2 * 256 + height1
ado.Close
bmp尺寸 = width &"|"& height
End Function

本主题由 超级版主 瑞祥幽冥狼 于 2023/10/5 18:32:40 执行 审核帖子 操作
收 徒 索 引 ← ← ← ← ← ← ← ← ← ← 点 击

个 人 Q Q 1 : 1 2 2 3 1 1 6 6 1 8[将满]
个 人 Q Q 2 : 6 1 7 0 9 5 5 4 3[可加]
2#

找图并点击图片中心点

3#

666666666+++

4#

学习

5#

666666666666666666666666

6#

向大神学习

7#

6666666666666666666666666666666666666

8#

来学习

做什么脚本玩什么游戏
9#

吾问无为谓无无无无

10#


11#

为什么我找出来的图片尺寸对不上,大神指导一下

求交流,求指导
12#

学习一下

13#

6666666666666

14#

,

点赞

15#

一早來學習

16#

厉害

17#


18#

666666666666666

19#


20#

好东西,学习了

发新话题 回复该主题