怎么缩放图片(手机怎么缩小图片大小)
大家好,我是公众号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) 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
效果展示:
代码里面有个缩放倍数变量,你可以直接修改成你需要的倍数,原本想把截图缩放也写一下,后来想想,那不就是先截图保存下来,然后在把图片缩放吗,原理都一样,就没必要写了。
alt是什么意思(astalt是什么指标)肝脏担负着人体代谢解毒和合成等重要的生理功能。无论什么原因引起的肝病,都会导致患者的肝功能发生异常改变。而这些异常均可通过检测患者的肝功能体现出来。肝功能的检测结果对肝病患者的诊断
两个奇奇怪怪的想法(脑袋里有很奇怪的想法怎么办)你越让自己不要去想,你越会不停地想。这就是心理学中著名的白熊效应如果我让你不要想白熊,反而会有一只白熊在你的脑海里挥之不去。要停止脑子里的胡思乱想,首先你要知道自己是怎么陷进去的。
创业故事我的洗鞋之路(流放之路祝福鞋)随着7月毕业季的即将到来,大四的学生们都很忙。除了忙着准备自己的毕业作品,更重要的还要规划自己的未来。或者在各大人才市场各个高校双选会递交自己的简历找一个满意的工作,或者筹措资金寻
一碗粥营业额6个亿(营业额一个亿利润多少)要说每天都能让无忌哥纠结一遍的事,大概就是点外卖了。面对着美团饿了么这样的外卖软件上成百上千家外卖店,却无从下手。点外卖已经成为人们的生活常态,各个商家纷纷入驻外卖平台,如今的外卖
广角镜头对比(广角镜头什么效果)近年来超广角镜头逐渐成为手机的标配,多摄模组往往都少不了超广角镜头。而其中的原因也相当简单,超广角镜头可以带来更广的视角容纳下更多的元素,不管是日常拍照还是外出拍摄风景都非常实用。
什么是记叙文(遇见中考满分作文记叙文)遇见这个作文题,能给学生很大的发挥空间,也容易出佳作。第一步是构思。首先要选择好遇见的对象,不管是命题还是半命题作文,文章中都应该有一个明确的对象,可以是书小猫等事物,可以是熊出没
网络这么赚钱(怎么赚网络上的钱)网络这么赚钱(怎么赚网络上的钱)前几天和好久没见的朋友聊天,不自觉地又谈到了赚钱的这个话题,好像不管怎样,我们都很难逃开钱这个俗气的东西。聊到这个话题,朋友就问我有没有什么可以做的
90后辞去高薪工作(辞职能做什么工作)大家好,我是湛江彭彭。自从离开广州已经差不多25天了,到目前在家还是没有找到合适的工作。作为90后的一员感觉还是有压力,还没结婚,没买车没买房,存款没多少。可能大家比较好奇我为啥放
杨绵绵的创业故事(海尔副总裁杨绵绵)2021年11月,72岁的海尔集团创始人张瑞敏宣布正式退休。他的砸冰箱事迹至今仍为人津津乐道,没有成功的企业只有时代的企业这句话也时常被引用。在他掌舵的37年间,曾经资不抵债濒临倒
如果你的生活穷困潦倒(穷困潦倒怎么办)人人都想富贵,成为人上人,但是努力的人不少,能够真正成功的却不多。人生风水轮流转,你永远不知道自己下一秒会发生什么,而遇到困境的时候,其实早已经注定。佛说,有因必有果,若是你能认真
猜谜语脑筋急转弯(谜语大全水果)元宵佳节要来了,大家又可以猜很多谜语了。315是一个打假的日子,也要来了。这里,思香要对谜语中的一些假的错的谜语进行揭露,请您指正。网络查找谜语黄铜铃,紫铜铃,铜铃里面藏铁心,摇摇