欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Convert 命令与图像处理

程序员文章站 2022-07-13 14:10:24
...

Linux 中可以用 convert 命令对图像进行转换,比如图像的大小和格式等。convert 命令在 ImageMagick 内,因此只需要安装 ImageMagick 即可。

sudo apt install imagemagick

安装完成后,执行如下命令确认 convert 是否安装成功。

convert --version

Convert 命令与图像处理

缩放图片大小

Convert 的 resize 子命令应该是在 ImageMagick 中使用较多的命令,它实现了图片任意大小的缩放,唯一需要掌握的就是如何使用它的一些参数测试设定值:

此说明文件中所用的原始文件(src.png),宽度:400,高度:300

$ file src.png 
src.png: PNG image data, 400 x 300, 8-bit/color RGB, non-interlaced

Convert 命令与图像处理

命令格式:

-resize {width}x{height}{%} {@} {!} {<} {>} {^}

示例:

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

    convert -resize 200x150 src.png dst.png
    

    转换后的 dst.png 的图片大小(宽度为 200,而高度已经按比例调整为 150)。

    Convert 命令与图像处理

  2. 也可以只指定宽度或者高度,按比例对图片进行缩放。如:

    只指定宽度:

    convert -resize 200 src.png dst.png
    

    只指定高度:

    convert -resize x150 src.png dst.png
    

    Convert 命令与图像处理

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

    convert -resize 200x200! src.png dst.png
    

    Convert 命令与图像处理

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

    convert -resize 50%x100%! src.png dst.png
    

    或者

    convert -resize 50%x100% src.png dst.png
    

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

    Convert 命令与图像处理

  5. 使用 @ 来指定图片的像素个数。如:

    convert -resize "aaa@qq.com" src.png dst.png
    

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

    Convert 命令与图像处理

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

    convert -resize "200x100>" src.png dst.png
    

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

    Convert 命令与图像处理

    convert -resize "200x100>!" src.png dst.png
    

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

    Convert 命令与图像处理

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

    convert -resize "100x500<" src.png dst.png 
    

    或者

    convert -resize "100x100<!" src.png dst.png
    

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

    convert -resize "600x600<" src.png dst.png
    

    Convert 命令与图像处理

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

    convert -resize "600x600<!" src.png dst.png
    

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

    Convert 命令与图像处理

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

    convert -resize "600x600^" src.png dst.png
    

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

    convert -resize "600x400^" src.png dst.png
    

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

最后这个 ^ 搞不懂!