娱乐综合资讯

怎么让图片变小(不剪裁缩小照片app)

2021-12-17
655 阅读

小伙伴们好,我是微信公众号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, 13百思特网1, 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)
Fori=1Toint(y/n)
        For k = 1 To 3
          NewPixelData[j][i][k]=PixelData[j*5][i*5][k]
        Next
    Next
Next
Image.SavePixelDataNewPixelData,NewPath

实际效果展现:

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

编码里边有一个调整图片大小倍率自变量,你能立即改动成你需要的倍率,本来想把截屏调整图片大小也写一下,之后想一想,那不便是先截屏储存出来,随后在把图片放大吗,基本原理都一样,就没必要写了。

标签: 剪裁

相关推荐