怎么让图片变小(不剪裁缩小照片app)
小伙伴们好,我是微信公众号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
实际效果展现:
编码里边有一个调整图片大小倍率自变量,你能立即改动成你需要的倍率,本来想把截屏调整图片大小也写一下,之后想一想,那不便是先截屏储存出来,随后在把图片放大吗,基本原理都一样,就没必要写了。