在Linux下批量将大图片转换为小图片

目的:将某一目录下所有大于2M的图片缩小50%

方法:find -size +2048k -exec convert {} -resize 50% {} \;

解释:

find -size +2048k #查找当前目录及其子目录下所有大于2M的文件

-exec convert {} -resize P {} #将查找到的文件使用convert命令缩小为原来图片大小的50%,其中第一个{}表示find命令查找到的文件,第二个{}表示resize以后的文件名。这里resize以后的文件名与原来的文件名一样,也就是说resize以后的文件覆盖原来的文件。关于convert命令可以参考下面的如何使用ImageMagick改变图片大小。

\; #表示命令结束。

如何使用ImageMagick改变图片大小

用ImageMagick吧, 假如当前目录放的就是所有这些图片
1. 保持长宽比例,高度都变为256:
for jpgfile in `ls` ; do convert $jpgfile -resize x256 new_$jpgfile ; done

2. 长宽都放缩为原来的50%
for jpgfile in `ls` ; do convert $jpgfile -resize %50 new_$jpgfile ; done

 

相关推荐