在炎热的七月,偶然被邻桌的同事喊了一下。嘿,过来看个东西。于是我伸着脖子过去看了一下。
他说“我发现一个androidStuido很屌的功能,可以把500kb的图片压缩到22kb”。以为挺复杂的,原来还挺简单,动动手指头就可以了。当然这要归功于2.3版本的androidStuido,自带主角光环。
来看操作
首先说一下背景
WebP是谷歌提供的一种支持有损压缩和无损压缩的图片文件格式,而且可以提供比JPEG或PNG更好的压缩。
在Android 4.0(API level 14)中支持有损的WebP图像,在Android 4.3(API level 18)和更高版本中支持无损和透明的WebP图像
注意:由于支持无损和透明的WebP图像只能在Android 4.3和更高版本中使用,所以您的项目必须声明一个minSdkVersion 18或更高版本,以使用Android Studio创建无损或透明的WebP图像。
有关WebP图像格式的更多信息,请参见WebP站点。有关选择正确图像格式以提高下载速度的更多信息,请参阅减少图像下载大小。
下面开始展示如何将图像转换成WebP格式。
Android Studio可以将PNG、JPG、BMP或静态GIF图像转换为WebP格式。
1. 右键单击一个图像文件或包含许多图像文件的文件夹,然后单击Convert to WebP。
2. 会弹出图像转换为WebP对话框。
- 默认设置取决于当前模块的minSdkVersion设置。
- 在这里由于我这个项目的minSdkVersion = 15。所以系统给我默认选择是有损的webp图像设置。
3. 选择有损或无损编码。在这里我们选择有损的。
注意:点9图(.9.png)格式的文件,不能转换为WebP图像。转换工具总是自动跳过9个补丁的图像
如果您的minSdkVersion设置为18或更高,则只能使用无损编码。如果选择有损编码,则设置编码质量,并在保存之前选择是否查看每个转换图像的预览。
您还可以选择跳过转换任何文件,这些文件的编码版本将大于原始版本,或者任何具有透明或alpha通道的文件。
由于Android Studio只允许您创建透明的WebP图像,如果您的minSdkVersion设置为18或更高,那么如果您的minSdkVersion低于18,则自动选择透明/ alpha通道复选框的跳过图像。
4. 如果您选择无损的,单击OK开始转换。如果您正在转换多个图像,那么转换是一个单步,并且可以撤消,以恢复您一次性转换的所有图像。
5. 如果您选择上面的无损转换,那么转换将立即发生。你的图像在原来的位置被转换。如果选择了有损转换,则继续下一步。
如果您选择了有损转换,并且您选择在保存之前查看每个转换图像的预览,Android Studio会在转换过程中显示每个图像,这样您就可以检查转换结果。
下图显示左侧的原始JPG图像和右侧的有损编码的WebP图像。
您可以拖动滑块左或右改变质量设置,并立即看到对编码图像和文件大小的影响。
中间区域显示了原始图像和编码图像之间的像素。在图中,质量设置为100%。您也可以选择默认的75%看一下效果,这两个图像几乎没有差别。
下图显示了与质量设置为0%的相同图像。压缩太多。图片失真,不推荐。推荐使用默认设置75%压缩。
(如果你没有选择观看预览,Android Studio跳过这一步,立即转换你的图像。)在预览步骤中,您可以单独调整每个图像的质量设置。
6. 单击Finish。你的图像在原来的位置被转换。你会发现图片大小减少了多少,大声的告诉我!!!