网站首页 > 技术教程 正文
大家好,我是公众号3分钟学堂的郭立员,今天继续我们安卓按键的学习。
这一期我们来学一下如何用按键实现图片旋转和图片缩小,这两个功能可能在对接打码平台时会用到。
讲这个之前需要强调一点,以下代码都是在安卓app3.3.8版本使用。
按键精灵手机助手上面的命令是:
如果你的版本比较低,可能没有这些功能,自行升级版本。
这个Image 图像命令组涉及到一个知识点,以前没有用到过。
知识点:【图像数据】
那么什么是图像数据,它的格式是什么样的呢?
我们用一个命令演示一下:
我们先来“获取指定屏幕范围内图像数据 ”,这个命令有4个参数,查找区域的4个坐标值,和我们截图命令、找图命令的坐标范围是完全一样的。那么这个命令的重点是什么呢?它的返回值,以键值表形式返回所有颜色数据。
对于一个陌生的键值表,我们怎么知道它的格式呢?我来教大家一个方法:
“把键值表转成json”,然后用traceprint调试输出json。
下面看一下这个命令返回值的键值表格式:
Dim PixelData = Image.GetScreenData(0,0,5,5)
Dim json=encode.TableToJson(PixelData)
TracePrint json
返回值:
当前脚本第3行:[[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]],[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]],[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]],[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]],[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]],[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59]]]
把返回值用在线格式化工具处理一下:
[
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
],
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
],
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
],
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
],
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
],
[
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59],
[225, 131, 59]
]
]
通过处理完的格式,可以看出返回值是三维数组。
数组的最大下标:三维数组(5,5,2)
搞清楚了这个以后,我们就开始今天的主题了。
(一)图片旋转(顺时针90度)。
Dim Path1 = "/sdcard/pictures/1.jpg"
Dim Path2 = "/sdcard/pictures/2.jpg"
Dim PixelData = Image.SetRotation(Path1, 90)
Image.SavePixelData(PixelData, Path2)
图片旋转的逻辑是这样的:
①读取图片数据
②顺时针旋转90度对应的数据替换
③把图像数据生成图片
(二)图片的缩小
有时候由于手机的分辨率很大,截图得到的图片超过了打码平台要求的图片尺寸大小,导致无法上传。
下面我们说一下缩小图片的思路:假设我们缩小n倍。
①获取原图的图像数据
②每隔n个位置从图像数据中提取一个数据,组成新的图像数据,得到数据是原来的n分之一。
③把新的图像数据生成图片
代码如下:
Dim Path = "/sdcard/pictures/f.jpg"
Dim NewPath = "/sdcard/pictures/f1.jpg"
dim PicSize = Image.Size(Path)
Dim x=PicSize[1]
Dim y=PicSize[2]
Dim n=5 //缩放倍数
Dim PixelData =Image.GetPicData(Path)
Dim NewPixelData= Image.GetScreenData(1,1,int(x/n),int(y/n))
For j = 1 To int(x/n)
For i = 1 To int(y/n)
For k = 1 To 3
NewPixelData[j][i][k]=PixelData[j*5][i*5][k]
Next
Next
Next
Image.SavePixelData NewPixelData, NewPath
效果展示:
代码里面有个缩放倍数变量,你可以直接修改成你需要的倍数,原本想把截图缩放也写一下,后来想想,那不就是先截图保存下来,然后在把图片缩放吗,原理都一样,就没必要写了。
猜你喜欢
- 2025-03-06 「按键精灵安卓版」界面多选框实现10选3(选中不超过3个)
- 2025-03-06 计算机犯罪系列(二十五)脚本外挂模拟人工自动打怪刑事责任分析
- 2025-03-06 「按键精灵安卓版」脚本界面上多选框的一键全选与取消全选
- 2025-03-06 魔兽世界刷坐骑+1 不爱打PVP的朋友福利来啦
- 2025-03-06 「按键精灵」脚本崩溃闪退重新启动
- 2025-03-06 暗黑3按键设置 解放双手,无缝释放技能
- 2025-03-06 按键精灵自动挂学堂云课程
- 2025-03-06 「按键精灵安卓版」静态界面的进度条
- 2025-03-06 「按键精灵思路讲解」关于安卓按键精灵的文字识别
- 2025-03-06 分享一个点名的源码
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)