Linux之convert命令的使用

。_饼干妹妹 提交于 2020-03-04 15:48:35

Android 开发中经常会碰到包体优化的需求,减小包体首先想到的是删除不需要的图片资源,减小必须图片资源的分辨率。不需要的图片资源的删除可以借用 Lint 实现,而减小图片资源的分辨率可以使用 Linux 下的 convert 命令。

常用命令如下:

图片格式转换:convert

示例:convert input.jpg output.png,将图像 input.jpg 转换为 output.png。

旋转图像:convert -rotate

示例:convert -rotate 90 input.png output.png,将图像 input.png 顺时针旋转90°保存为 output.png。

裁剪图像:convert -crop

示例:convert -crop 100x100+10+10 input.png output.png,将input.png从(10,10)为起点,裁剪一块100x100像素的部分,保存为output.png。

生成缩略图:convert -resize 或 convert -sample

示例:convert -resize 100x100 input.png output.png,将图像 input.png 按比例缩放为100px宽或高的图像保存到output.png。

示例:convert -resize 50%x50% input.png output.png,将图像 input.png 按比例缩放为原来的一半保存到output.png。

示例:convert -sample 100x100 input.png output.png,将图像 input.png 按比例缩放为100px宽或高的图像保存到output.png。

示例:convert -sample 50%x50% input.png output.png,将图像 input.png 按比例缩放为原来的一半保存到output.png。

示例:convert -resize 100x100! input.png output.png,将图像 input.png 不按比例缩放为宽高分别为100px图像保存到output.png。

convert -resize 和 convert -sample区别:convert -sample生成缩略图较快,画质较低,适合小图压缩;convert -resize生成缩略图较慢,画质高,适合大图压缩。

我们可以使用shell写一个resize.sh脚本,方便处理图片。

#!/bin/bash

# 更改图片分辨率
# $1 为要修改的图片名称,比如test.png
# $2 为修改后的的图片与原图的大小百分比, 比如50%x50%
# 示例执行方法:在控制台输入bash resize.sh test.png 50%x50%

function resize() {
    find . -type f -name "$1" | while read line
    do
      echo "Proceed ${line} ..."
      convert -resize $2 $line $line
    done
}

resize $1 $2

生成黑白图:convert -monochrome

示例:convert -monochrome input.png output.png,将图像 input.png 转换为黑白色的 output.png。

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!