Linux下批量转换PNG和JPG

我们用到的软件名为imagemagick,一款强大的图片处理软件。

Debian系使用apt-get install imagemagick来安装,Fedora系通过yum install imagemagick来安装。

其他系统可以到官方下载页进行下载安装 https://www.imagemagick.org/script/download.php

安装完成后,可以通过convert tst.jpg tsg.png将JPG文件转换为PNG,反之亦可。

下来进行批量替换:

root@bwgzl:/data/wwwroot/getos.org/images# ll
total 188
drwxr-xr-x  2 www www  4096 Aug  4 15:48 ./
drwxr-xr-x 27 www www  4096 Aug  4 15:32 ../
-rw-r--r--  1 www www 18778 Aug  4 15:43 clip_image002.jpg
-rw-r--r--  1 www www 17637 Aug  4 15:43 clip_image004.jpg
-rw-r--r--  1 www www 28075 Aug  4 15:43 clip_image006.jpg
-rw-r--r--  1 www www 30916 Aug  4 15:43 clip_image008.jpg
-rw-r--r--  1 www www 13538 Aug  4 15:43 clip_image010.jpg
-rw-r--r--  1 www www 11845 Aug  4 15:43 clip_image012.jpg
-rw-r--r--  1 www www 14519 Aug  4 15:43 clip_image014.jpg
-rw-r--r--  1 www www 33052 Aug  4 15:43 clip_image016.jpg
root@bwgzl:/data/wwwroot/getos.org/images# ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
root@bwgzl:/data/wwwroot/getos.org/images# ls -ltr
total 1172
-rw-r--r-- 1 www  www   18778 Aug  4 15:43 clip_image002.jpg
-rw-r--r-- 1 www  www   17637 Aug  4 15:43 clip_image004.jpg
-rw-r--r-- 1 www  www   28075 Aug  4 15:43 clip_image006.jpg
-rw-r--r-- 1 www  www   30916 Aug  4 15:43 clip_image008.jpg
-rw-r--r-- 1 www  www   13538 Aug  4 15:43 clip_image010.jpg
-rw-r--r-- 1 www  www   11845 Aug  4 15:43 clip_image012.jpg
-rw-r--r-- 1 www  www   14519 Aug  4 15:43 clip_image014.jpg
-rw-r--r-- 1 www  www   33052 Aug  4 15:43 clip_image016.jpg
-rw-r--r-- 1 root root 132411 Aug  4 16:00 clip_image002.png
-rw-r--r-- 1 root root 106702 Aug  4 16:00 clip_image004.png
-rw-r--r-- 1 root root 197143 Aug  4 16:00 clip_image006.png
-rw-r--r-- 1 root root  79397 Aug  4 16:00 clip_image008.png
-rw-r--r-- 1 root root  37643 Aug  4 16:00 clip_image010.png
-rw-r--r-- 1 root root  81090 Aug  4 16:00 clip_image012.png
-rw-r--r-- 1 root root  88635 Aug  4 16:00 clip_image014.png
-rw-r--r-- 1 root root 272537 Aug  4 16:00 clip_image016.png

注意第二条命令即为批量转换操作

ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'