ImageMagick
终端
我拿系统自带的一张壁纸作为例子。我要做一个缩略图,可以执行命令:convert -resize 100x100 paisaje.jpg paisaje_resize1.jpg最后两个文件分别是输入文件和导出文件。
注意:虽然明确指定了图片大小为100×100,但paisaje_resize1.jpg的不一定就是100×100,因为是等比缩放的,大小取决原始图片比例。原则是缩放后的尺寸最少有一个是符合宽或高,且另外一个不能大于指定的参数中对应的宽或高。这是执行上面命令后生成的图片。
另外可以通过只指定宽或高的方式来进行缩放。例如:convert -resize 100 paisaje.jpg paisaje_resize1.jpg此时,宽就被固定为100,而高则按比例变化。如果要固定高,则将上面的参数改为x100。下图可以看到图片分别固定宽和高后像素大小属性。
固定宽高缩放。即不考虑原是图宽高的比例,把图片缩放到指定大小。例如命令:convert -resize 1440x1440! paisaje.jpg paisaje_resize1.jpg下方是最固定比例后最终生成的图片。
有条件缩放。可以通过>或<符号来控制原始图片是否进行缩放,例如在处理一批尺寸大小各异的图片,只想把尺寸大于给定的值图片才进行缩小,如果没有指定条件,可能会把那些小的图片进行了放大处理。比如,参数为200x100>设定当图片的宽大于200或高大于100时候,才进行缩小处理。而200x100<则指当宽或高小于指定参数时才进行缩放。由于>在shell中有其他含义和作用,免于产生歧义,此处需要将参数用单引号包含。下图是各参数的作用。
有些参数可以联合起来运用。比如将参数定为800x100>!。假设图片尺寸是300x200。很显然高(200)是大于指定值高(100), 符合缩小的条件,由于执行的不是等比缩放, 所以dest.jpg的尺寸理论上是800x100,又由于执行是缩小操作 显然800是超过原始图片宽的,故dest.jpg的宽只能是300。由于>在shell中有其他含义和作用,免于产生歧义,此处需要将参数用单引号包含。下图是执行convert -resize 2000x1500>! paisaje.jpg paisaje_resize4.jpg后生成的图形和相应属性(原图像素大小为2560X1440)。
参数也可以用百分比,这样就会更直观。如:convert -resize 50%x50% paisaje.jpg paisaje_resize2.jpg下图是最终效果。
在切换目录后,我们还可以利用这个命令批量生成缩略图:mogrify -sample 200x100 *.jpg注意,这个命令会覆盖当下目录原来的jpg格式的图片,不过你可以在操作前,先把你的图片备份一下。
由于一些特殊符号在命令行中有其特殊作用,作为参数时为了回避冲突,需要对参数加单引号。