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

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

dgx6664周前 (05-15)文章中心5

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

分享给朋友:

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

占用空间极小的中望cad2014简体中文专业版的安装方法

#头条创作挑战赛##记录我的2024##妙笔生花创作挑战#大家好,二维绘图的软件你用过占用空间比较小,安装简单,功能齐全的cad软件吗?目前个人收藏了一款,也一直在用,软件版本也不低,这款软件是中望cad2014,很适合做外加工的老板经常接收外部文档用。因为外加工图档有时因为对方版本太高,打不开图...

SOLIDWORKS安装必看!2022,2021电脑硬件配置和操作系统要求

SOLIDWORKS软件是一款基于Windows系统的大型机械设计软件,因为软件比较大且为了能够让SOLIDWORKS发挥出最佳性能,所以对于电脑硬件和系统有所要求。以下信息可用于参考使用的电脑硬件、操作系统和 Microsoft 产品是否是支持 SOLIDWORKS,且进行了优化的系统。1、SOL...

CAD安装失败,如何才能删除(卸载)CAD?7步就能完美卸载CAD软件

CAD安装失败,怎么样才能彻底删除CAD各种残留注册表?有时候我们想将CAD重新安装,但却显示CAD已经安装,但又不见CAD软件,然后我们就会发出这样的疑问:CAD无法重新安装是怎么一回事?下面电脑百科林老师就告诉大家CAD安装失败的原因,以及怎么操作才能把CAD完全卸载干净。想CAD重新安装,但却...

正式支持DirectX 12与OpenGL 4.2,摩尔线程发布驱动程序v280.90

IT之家 11 月 20 日消息,摩尔线程今日发布版本号为 v280.90 的图形显卡驱动程序。官方表示,新版驱动程序可以在 Windows 10 和 Windows 11 操作系统环境下实现对 DirectX 12 和 OpenGL 4.2 的支持:优化了 DirectX 12 模式下运行《黑神话...

《蝙蝠侠》DirectX Error错误怎么办 DirectX Error错误解决方法

有玩家玩《蝙蝠侠》的时候遇到DirectX Error错误怎么办呢,下面为大家介绍《蝙蝠侠》DirectX Error错误解决方法,希望能帮到大家。由于《蝙蝠侠:剧情版》游戏本身问题,Win 7 SP1没安装KB2670838的电脑在启动《蝙蝠侠:剧情版》时会提示DirectX Error错误,从而...

COD19/使命召唤19 0x887A0005/0x887A0006错误代码最新解决方法

使命召唤19是无数玩家喜爱的射击游戏,这款游戏玩法丰富经典,战区由实地采景制作,得到玩家们的认可。同时,也有不少玩家遇到了使命召唤19 0x887A0005、0x887A0006错误代码的问题,玩家们不知道应该如何解决,下面小编为大家带来使命召唤190 x887A0005、0x887A0006错误代...