欢迎转载,请支持原创,保留原文链接:blog.ilibrary.me

ImageMagick是一个著名的图像处理工具库, 广泛运行在Linux, Window, MacOSX, iOS,Android等系统上。 它提供丰富工具库,同时提供丰富的命令行接口

ImageMagick包含一个convert工具, 可以做resize和各种格式转换。

你可以用下面的命令行做简单的图标resize:

convert logo.png -resize 28x28 logo28x28.png

convert 实际上是magick convert的别称,两者功能等价.

批量生成图标脚本

把下面的内容保存为iconmaker.sh

#!/bin/sh

filename=$1

dirname=$2

name_array=("Icon-29.png" "Icon-29@2x.png" "Icon-29@3x.png" "Icon-40@2x.png" "Icon-40@3x.png" "Icon-76.png" "Icon-76@2x.png" "Icon-60@2x.png" "Icon-60@3x.png" "iTunesArtwork.png" "iTunesArtwork@2x.png")
size_array=("29x29" "58x58" "87x87" "80x80" "120x120" "76x76" "152x152" "120x120" "180x180" "512x512" "1024x1024")

mkdir $dirname

echo $filename
echo $dirname
for ((i=0;i<${#name_array[@]};++i)); do
    m_dir=$dirname/${name_array[i]}
   echo $m_dir
    convert $filename -resize  ${size_array[i]} $m_dir
done

使用方法 ./iconmaker.sh <原icon> <目标目录>

./iconmaker.sh logo.png iconset

下面方法可以查看文件尺寸信息:

identify iconset/iTunesArtwork@2x.png
iconset/iTunesArtwork@2x.png PNG 1024x1024 1024x1024+0+0 8-bit sRGB 453198B 0.000u 0:00.000

脚本参数传递

  1. $* – 所有的参数
  2. $@ – 所有的参数
  3. $# – 参数个数
  4. $0 – 命令名称,或者脚本名称
  5. $1 – 第一个参数
  6. $2 – 第二个参数
  7. $3 – 第三个参数
  8. ..
  9. $9 – 第9个参数
  10. $10 – 第10个参数

原教程在这里