当前位置:首页 > 文章中心 > 正文内容

「按键精灵安卓版」脚本实现图片旋转和缩小

dgx6667个月前 (05-15)文章中心24

大家好,我是公众号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


效果展示:



代码里面有个缩放倍数变量,你可以直接修改成你需要的倍数,原本想把截图缩放也写一下,后来想想,那不就是先截图保存下来,然后在把图片缩放吗,原理都一样,就没必要写了。

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/1626.html

分享给朋友:

“「按键精灵安卓版」脚本实现图片旋转和缩小” 的相关文章

如何在电脑中安装更多好看的字体

前段时间分享了一个如何自己动手做一个自己喜欢描红练习贴的视频,好多网友私信问,如何可以像我一样有这么多好看使用的字体。比如我们需要写一份汇报报告,需要的标题就是“方正小标宋简体”,如下图:又例如一些政府部门的正文需要“仿宋_GB2312”还有我之前课件中提到的自己制作的描红贴,一些书法家的字体。还有...

CAD2014安装图文教程

由于平时经常使用的cad版本是cad2014,个人觉得cad2014的功能完整性、流畅度、电脑适配度都相当的不错,所以基本上很少使用其它高版本的cad。下面就如何安装cad2014详述一下,希望能够对大家有所用处。1、下载CAD2014安装包,并解压,打开安装程序2、双击应用程序,点击安装3、选择我...

经典归来!《魔兽争霸3》官方对战平台正式上线

还有多少人在坚守着《魔兽争霸3》?如果你是其中的一员,不知道这个新消息会不会让你感动:网易建立《魔兽争霸3》官方对战平台,经典回归!新平台被直接命名为“魔兽争霸官方对战平台”。据了解,这是大陆地区暴雪唯一官方授权的对战平台。除了普通的1v1或组队对战外,它还支持Dota以及我们最爱的RPG地图。官方...

cad2007修改工具镜像工具使用方法讲解 #学习

大家好,接下来给大家分享一下cad二零零七的镜像工具,也就是对称的工具的用法。·它的工具在修改工具条上的第三个,这个叫镜像。在有一些软件可能会翻译成对称,但是cad会叫做镜像,这个在很多软件都会有。·它的用法是什么?可以直接用鼠标点它,点这个工具以后就会提示选择对象。比如这里这几根线条是要镜像的对象...

cad2007修剪工具使用方法技巧 #cad2007

大家好,今天给大家分享一下在 cd 当中修剪工具的使用方法。1. 这个工具用的非常多,经常会画一些线条去进行裁剪。其用法是,当这种线条有交叉了以后,如果需要去把多余的延伸出来的线条进行修剪,可以使用这个工具 tr,它的命令是缩进去以后空格一次、两次,然后点击这些线条就可以删除,这样就可以把交叉的线条...

如何才能激活office2010?Office 2010安装及激活的详细图文教程

现在office办公用得比较多的还是office 2010,但是有很多的小伙伴不知道怎么安装和激活,我把自己的一套方法共享给大家,希望可以帮到各位小伙伴们,不走冤枉路,我还是以图片文字的形式展示出来。第一步、安装方法首先下载microsoft Office2010,然后将下载的office2010压...