MAC下批量转换PNG和JPEG

OS X下有一个sips的程序可以用来处理图片。 sips的名称功能非常强大,参考帮助文档

这里我们只用到其中的一个功能,转换图片格式。

命令参考:

sips -s format jpeg --out b.jpg a.png

写一个png批量转换jpg的脚本:

cat  ~/bin/png2jpg
#!/bin/bash
# convert png files to jpeg files
# usage: png2jpg <file>...

for f in "$@"
do
    sips -s format jpeg --out "${f%.*}.jpg" "$f"
done

同样写一个jpg批量转换png的脚本:

cat ~/bin/jpg2png
#!/bin/bash
# convert jpeg files to png files
# usage: jpg2png <file>...

for f in "$@"
do
    sips -s format png --out "${f%.*}.png" "$f"
done

使用例子:

➜ ~/Downloads $ png2jpg QQ20131008-*.png
/Users/adyliu/Downloads/QQ20131008-2.png
  /Users/adyliu/Downloads/QQ20131008-2.jpg
/Users/adyliu/Downloads/QQ20131008-3.png
  /Users/adyliu/Downloads/QQ20131008-3.jpg
/Users/adyliu/Downloads/QQ20131008-4.png
  /Users/adyliu/Downloads/QQ20131008-4.jpg
➜ ~/Downloads $ ll QQ*
-rw-r--r--  1 adyliu  staff    67K 10  8 15:43 QQ20131008-2.jpg
-rw-r--r--@ 1 adyliu  staff    88K 10  8 15:31 QQ20131008-2.png
-rw-r--r--  1 adyliu  staff    23K 10  8 15:43 QQ20131008-3.jpg
-rw-r--r--@ 1 adyliu  staff    34K 10  8 15:31 QQ20131008-3.png
-rw-r--r--  1 adyliu  staff    47K 10  8 15:43 QQ20131008-4.jpg
-rw-r--r--@ 1 adyliu  staff    44K 10  8 15:31 QQ20131008-4.png

参考资料:

  1. sips doc
  2. Resizing images using the command line
  3. Shell Parameter Expansion
  4. Extract filename and extension in bash