linux下图片处理工具ImageMagick使用方法

convert命令格式: -resize widthxheight{%} {@} {!} {<} {>} {^}


1. 默认时,宽度和高度表示要最终需要转换图像的最大尺寸,同时Convert会控制图片的宽和高,保证图片按比例进行缩放。

如:convert -resize 600×600 src.jpg dst.jpg

转换后的dst.jpg的图片大小(宽度为600,而高度已经按比例调整为450).

2.如果需要转换成600×600,而图片无需保持原有比例,可以在宽高后面加上一个感叹号!.

如:convert -resize 600×600! src.jpg dst.jpg

3. 只指定高度,图片会转换成指定的高度值,而宽度会按原始图片比例进行转换。

如:convert -resize 400 src.jpg dst.jpg

转换后的dst.jpg的图片大小(宽度为400,而高度已经按比例调整为300),和例1有点类似。

4. 默认都是使用像素作为单位,也可以使用百分比来形象图片的缩放。

如:convert -resize 50%x100%! src.jpg dst.jpg 或者convert -resize 50%x100% src.jpg dst.jpg

此参数只会按你的比例计算后缩放,不保持原有比例。(结果尺寸为100×150)

5.使用 @ 来制定图片的像素个数。

如:convert -resize “10000@” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(115×86),图片保持原有比例(115×86= 9080 < 10000)。

6.当原始文件大于指定的宽高时,才进行图片放大缩小,可使用>命令后缀。

如:convert -resize “100×50>” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(67×50),图片保持原有比例。

如:convert -resize “100×50>!” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(100×50),图片不保持原有比例。

7.当原始文件小于指定的宽高时,才进行图片放大转换,可使用<命令后缀。

如:convert -resize “100×500<” src.jpg dst.jpg 或者convert -resize “100×100<!” src.jpg dst.jpg

此命令执行后,dst.jpg和src.jpg大小相同,因为原始图片宽比100大。

如:convert -resize “600×600<” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(600×450),图片保持原有比例。

如:convert -resize “600×600<!” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(600×600),图片不保持原有比例。

8.使用^命令后缀可以使用宽高中较小的那个值作为尺寸

如:convert -resize “300×300^” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(400×300),图片保持原有比例,(300:300 < 200:150,选择高作为最小尺寸)。

如:convert -resize “300×200^” src.jpg dst.jpg

此命令执行后,dst.jpg图片大小为(300×225),图片保持原有比例,(300:200 > 200:150,选择宽作为最小尺寸)。



裁剪~

imagemagick的convert命令通过crop参数,可以把一幅大图片分成若干块大小一样的图片,同时也可以在大图上截取一块图片来。命令格式为

convert 原始图片 -crop widthxheight+x+y 目标图片

其中widthxheight是目标图片的尺寸,+x+y是原始图片的坐标点,这两组值至少要出现一组,也可以同时存在。另外该命令也可使用gravity来重新定义坐标系统。关于更多gravity的信息,请参考:ImageMagicK之gravity参数详解。下面介绍几种常用的命令。

  • 把原始图片分割成多张小图
convert src.jpg -crop 100x100 dest.jpg

假设src.jpg的大小是300x200,执行命令后将得到名为dest-0.jpg、dest-1.jpg...dest-5.jpg的6张大小为100x100的小图片。注意如果尺寸不是目标图片的整数倍,那么右边缘和下边缘的一部分图片就用实际尺寸

  • 在原始图片上剪裁一张指定尺寸的小图
convert src.jpg -crop 100x80+50+30 dest.jpg

在原始图片的上距离上部30像素左部50为起点的位置,分别向左向下截取一块大小为100x80的图片。如果x相对于坐标,宽度不够100,那就取实际值。

convert src.jpg -gravity center -crop 100x80+0+0 dest.jpg

在原始图上截取中心部分一块100x80的图片

convert src.jpg -gravity southeast -crop 100x80+10+5 dest.jpg

在原始图上截取右下角距离下边缘10个像素,右边缘5个像素一块100x80的图片


你可能感兴趣的:(linux,工具)