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

软件版本: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

快捷导航

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

返回列表 12345678» / 23
发新话题 回复该主题

[技术交流] 【院刊】-【201410期】图片找图、图片二期处理 [复制链接]

1#

图片找图、图片二期处理




图片找图?啥是图片找图呢?之前小编在论坛上看到有童鞋纠结这么一个问题:

获取游戏里一个物品的截图,然后想和在电脑存放的一张没有打开的图片做匹配,如果截取的物品截图可以在电脑存放的图片里找到,就继续操作下一步。

哇塞~ 一听这个想法,我和我的小伙伴都惊呆了。好高端的样子,图片里找图,而且还是没打开的图片!小编惊呆之后又继续逛论坛,锵锵锵~就是那么巧,小编找到了图片找图的方法~



图片找图

使用 【一只鱼】●图灵v1.1插件 ,只需要几行代码就能轻松解决图片找图的问题。

使用前准备
1 下载一只鱼插件,解压到任意路径
2 将解压后文件夹里的 FISH.dll FISH.html 两个文件剪切到按键精灵安装目录下的plugin文件夹里。
3 打开按键精灵(如果复制文件到plugin文件夹里时按键精灵是开启状态,请关闭之后再开启)


需要用到的插件命令

命令名称:Bind 绑定
命令功能:绑定窗口句柄或BMP图片路径
命令参数:参数1:变体型,窗口句柄或路径图片 参数2:字符串型,绑定方式
返回值:

命令名称: FindPicture 区域找图
命令功能:区域找单张图片或者多张图片
命令参数:参数1:变体型,BMP图片路径 参数2:字符串型,查找方向 参数3:浮点型,颜色相似度
参数4:变体型,查找区域范围 参数5:整数型,返回查找结果类型
返回值:整数型,路径BMP图片的坐标


代码
  1. Call Plugin.FISH.Bind("G:\1.BMP")
  2. //绑定 路径图片
  3. Dim xy, x, y, i
  4. xy = Plugin.FISH.FindPicture("G:\2.BMP", 0, 1.0, "FULL", 0)
  5. //或者 xy = Plugin.FISH.FindPicture("G:\2.BMP", "从左上到右下", 1.0, "FULL", 0)
  6. For i = 0 To UBound(xy)
  7. x = xy(i, 0)
  8. y = xy(i, 1)
  9. TracePrint x & "," & y
  10. Next
复制代码
代码分析:

1 Call Plugin.FISH.Bind("G:\1.BMP") 绑定主图片(小编截取了电脑整个屏幕作为主图,保存在G盘命名为1.bmp)
2 xy = Plugin.FISH.FindPicture("G:\2.BMP", 0, 1.0, "FULL", 0) 需要找的图(小编接取的是电脑屏幕上 我的电脑 图标),找到之后将坐标返回给变量xy
注意 :图片的格式要为BMP



一只鱼插件除了支持图片找图之外,它还支持图片二期处理和无字库找字,我们一起来看看~~



图片二期处理

例如,我们要在图片上画圈圈,画框框等等,就属于图片的二期处理,我们看一个例子,看看一只鱼插件是如何实现图片的二期处理的。

例子
将电脑桌面截图保存为11.bmp,然后在图片11.bmp中画一个红色边框,红框所在区域为10,10,80,30

代码
  1. //绑定 路径图片
  2. Call Plugin.FISH.Bind("C:\11.bmp")
  3. //获取图片数据
  4. Dim 像素二维数组
  5. 像素二维数组 = Plugin.FISH.GetPixels("FULL")

  6. //矩形范围
  7. l = 10
  8. t = 10
  9. r = 80
  10. b = 30

  11. //绘制矩形
  12. 像素二维数组 = 绘制矩形(l, t, r, b, 255, 像素二维数组)

  13. //保存图片
  14. Call Plugin.FISH.PixelsToBmp(像素二维数组, "C:\111.bmp")

  15. Function 绘制矩形(左, 上, 右, 下, 颜色, 数组)
  16. Dim x, y
  17. '-
  18. y = 上
  19. For x = 左 To 右
  20. 数组(x, y) = 颜色
  21. Next
  22. y = 下
  23. For x = 左 To 右
  24. 数组(x, y) = 颜色
  25. Next
  26. '|
  27. x = 左
  28. For y = 上 To 下
  29. 数组(x, y) = 颜色
  30. Next
  31. x = 右
  32. For y = 上 To 下
  33. 数组(x, y) = 颜色
  34. Next
  35. 绘制矩形 = 数组
  36. End Function
复制代码
思路分析:
1 绑定主图
2 获取主图的像素点二维数组
3 设置需要画红框的区域
4 循环给设置区域点的像素点赋值颜色(255是红色
5 修改之后将被修改的像素数组保存起来(保存修改过的图片)

效果:

您所在的用户组无法下载或查看附件



无需字库轻松找字

1 要查找的字不能是杂色字,需要是纯色字
2 目前找字功能支持宋体和黑体

找字命令
命令名称:FindWordShape 区域形状找字
命令功能:区域找单个文字或者多个字符串
命令参数:参数1:变体型,BMP图片路径 参数2:字符串型,查找方向 参数3:浮点型,颜色相似度参数4:变体型,查找区域范围 参数5:整数型,返回查找结果类型
返回值:整数型,文字的坐标

代码
  1. Dim xy, x, y, i
  2. xy = Plugin.FISH.FindWordShape("一只鱼", "宋体,10", 0, 1.0, "FULL", 0)
  3. '或者 xy = Plugin.FISH.FindWordShape("一只鱼", "宋体,10", "从左上到右下", 1.0, "FULL", 0)
  4. For i = 0 To UBound(xy)
  5. x = xy(i, 0)
  6. y = xy(i, 1)
  7. TracePrint x & "," & y
  8. MoveTo x,y
  9. Next
复制代码
打开记事本测试下效果:

您所在的用户组无法下载或查看附件



如果不知道游戏的字体是什么字体,多大。 建议可以使用一只鱼的抓色工具来测试字体。
一只鱼图灵插件、抓点/抓色插件下载:
您所在的用户组无法下载或查看附件

您所在的用户组无法下载或查看附件


按键精灵里的资源库中也可以下载:

您所在的用户组无法下载或查看附件





如果童鞋们对于本帖里的内容有疑问或者建议,欢迎跟帖讨论~~



您所在的用户组无法下载或查看附件

本文由按键学院提供技术支持

2个月学会赚大钱的脚本

按键学院10月实战班卷土来袭



    已有1评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/10/14 9:53:58 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    万恶的回复

    3#

    6666666666666666666666666666666666666666

    4#

    学习,谢谢

    5#

    什么意思?

    6#

    】图片找图、图片二期处理修

    7#

    这个最需要了。

    8#

    TYETRYRYTE

    9#

    ffffffffffffffffffffffffasdsd

    10#

    大概的风格电饭锅

    11#

    6666666666

    12#

    学习学习~~~~

    13#

    研究一下是否是我要的插件

    14#

    学习下

    15#

    fdsfdsfdsfds

    16#


    17#


    18#

    范德萨范德萨范德萨

    19#

    图片找图、图片二期处

    20#

    谢谢分享哦

    发新话题 回复该主题