手机图片尺寸修改器毫米(「按键精灵安卓版」脚本实现图片旋转和缩小)

大家好,我是微信官方账号3分钟学堂的郭莉媛。今天,我将继续我们对Android按钮的研究。


本期我们就来学习一下如何利用按键实现图像旋转和图像缩小。对接编码平台时可以使用这两个功能。


在说这个之前,我需要强调一下,以下代码都是在Android app版本app3.3.8中使用的。






按钮向导手机助手上方的命令是:





如果您的版本较低,您可能没有这些功能。自己升级版本。


这个图像命令组涉及到一个知识点,以前没有用过。


知识点:[图片资料]


那么什么是图像数据,它的格式是什么?


让我们用一个命令来演示一下:





先说“获取指定屏幕范围内的图像数据”。这个命令有四个参数和四个搜索区域的坐标值,和我们的截图命令和地图搜索命令的坐标范围完全一样。那么这个命令有什么意义呢?它以键值表的形式返回所有颜色数据。


我们如何知道一个不熟悉的键值表的格式?我来教你一个方法:


“把键值表变成json”,然后用traceprint调试输出json。


让我们来看看这个命令返回值的键值表格式:


Dim PixelData =图像。GetScreenData(0,0,5,5) Dim json=encode。TableToJson(pixel data) trace print JSON

返回值:


当前脚本第3行:[[225,131,59],[225,131,59],[225,131,59],[225,131,59],[225,131,59] 131,59],[225,131,59],[225,131,59],[225,131,59],[225,125,125

用在线格式化工具处理返回值:


[ [ [225,131,59], [225,131,59], [225,131,59], [225,131,59], [225,131,59], [225,131,59], 。 131,59] ], [225,131,59], [225,131,59], [225,131,59], [225,131,59], [225,131,59], [225,131,59]

通过处理后的格式,我们可以看到返回值是一个三维数组。


数组的最大下标:3D数组(5,5,2)


想通了这一点,我们就开始今天的话题。


(1)图像旋转(顺时针旋转90度)。


Dim Path1 = & # 34/SD card/pictures/1 . jpg & # 34; Dim path 2 = & # 34;/SD card/pictures/2 . jpg & # 34; Dim PixelData = Image。SetRotation(Path1,90) Image。SavePixelData(PixelData,Path2)

图片旋转的逻辑如下:


①读取图片数据

②顺时针旋转90度对应的数据替换




③从图像数据生成图片。



(2)图像的缩小


有时候由于手机分辨率高,截图得到的图片超过了编码平台要求的图片大小,导致无法上传。


先说缩小图片的思路:假设我们缩小n倍。


①获取原始图像的图像数据。

手机图片尺寸修改器

②从每n个位置的图像数据中提取一个数据,形成新的图像数据,得到的数据是原来的五分之一。

③从新的图像数据生成图片。


代码如下:


Dim Path = & # 34/SD card/pictures/f . jpg & # 34; Dim new path = & # 34;/SD card/pictures/f1 . jpg & # 34; dimpicsize = Image . size(path) dimx = picsize[1] dimy = picsize[2] dimn = 5//缩放因子 dimpixeldata = Image . get . 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 Next Image .SavePixelData NewPixelData,NewPath

显示效果:





代码中有一个缩放因子变量,你可以直接修改成你需要的倍数。本来你是想写截图缩放的。后来想想,不就是先保存截图再缩放图片吗?原理是一样的,不用写了。

您可以还会对下面的文章感兴趣

暂无相关文章

使用微信扫描二维码后

点击右上角发送给好友