AI 摘要

ImageMagick是一个免费的开源图像处理工具,支持多种文件格式;具备强大的图像编辑、合成和转换功能。其特点包括多功能定制、命令行界面和API支持。常用操作包括Resize(保持长宽比、等比例)、Compress(质量调整、压缩类型选择)。软件套件通常由相关软件程序集合组成,共同解决特定问题。ImageMagick在网络开发、图形设计、科学研究等领域广泛应用。

ImageMagick是一个免费的开源软件套件, 用于编辑和操作数字图像。它可用于创建,编辑,合成或转换位图图像,它支持多种文件格式,包括JPEG,PNG,JPG,WEBP等。ImageMagick被广泛应用于诸如网络开发、图形设计、视频编辑、科学研究、医学影像和天文学等行业。其多功能且可定制的特性,以及强大的图像处理能力,使其成为广泛用于各种与图像相关任务的首选工具。

mageMagick包含一个用于执行复杂图像处理任务的命令行界面,以及用于将其功能集成到软件应用程序中的API。它使用C语言编写,可在多种操作系统上使用,包括Linux、Windows和macOS。

软件套件软件
定义一组相关联的软件程序的集合,通常由同一家公司或组织开发,并被设计成协同工作以完成特定任务或解决特定问题任何类型的可执行代码或指令集合,可以在计算机或其他设备上运行以执行特定的功能
特性通常具有共同的主题或目标,它们可能在功能上相互补充,使用户能够在一个集成的环境中完成各种任务可以是独立的应用程序,也可以是软件套件的一部分
举例典型的软件套件包括Microsoft Office(包括Word、Excel、PowerPoint等)、Adobe Creative Suite(包括Photoshop、Illustrator、InDesign等)等软件的范围非常广泛,从操作系统到应用程序、游戏、工具等各种类型的软件都属于这个范畴。

1.简单示例

 $ magick origin.jpg  target.webp

这个命令,将一个jpg的图片转换为webp格式的图片。下面再介绍一下常用的操作。

2.Resize

2.1 保持长宽比

指定像素

假设您有数百张大型 JPG 图像想要转换为一系列 PNG 缩略图(thumbails),可以使用如下命令,该命令会将原图片按照长宽比, 将图片的最长边变为120像素:

 $ magick *.jpg -resize 120x120 thumbnail%03d.png

如下命令可以读取所有图像并随后调整大小。在读取每个图像时调整其大小会更快且资源消耗更少

 $ magick *.jpg[120x120] thumbnail%03d.png
image-20240502190204980

等比例

使用如下命令,可以指定图片缩放/扩大的比例:

 $ magick *.jpg -resize 50% %03d.webp
image-20240502193108896

3.Compress

3.1 quality

可以使用-quality参数:

对于 JPEG 和 MPEG 图像格式,质量为 1(最低图像质量和最高压缩)到 100(最佳质量但效率最低的压缩);使用输入图像的估计质量,否则默认使用 92。

对于JPEG-2000图像格式,质量使用非线性方程映射到Jasper库所需的压缩比。这个非线性方程旨在粗略地逼近JPEG v1格式提供的质量。默认质量值为100,表示请求无损压缩。质量为75表示请求16:1的压缩比。

对于MNG和PNG图像格式,质量值设置zlib压缩级别(质量/10)和滤波器类型(质量%10)。默认PNG的“质量”为75,这意味着压缩级别7,并使用自适应PNG滤波,除非图像有一个颜色映射,那么它的意思是压缩级别7且没有PNG滤波。[MNG(Multiple-image Network Graphics)图像是一种多图像网络图形格式,旨在成为GIF的改进替代品,MNG格式是由PNG图像格式派生而来,因此它使用了PNG的压缩算法和数据结构,并添加了支持多帧和动画的功能。]

总结, 对于不同的图像格式, 默认的压缩级别不同且使用的压缩算法不同, 想要了解可以深入学习.

 $ magick origin.jpg -quality 60 target.webp

如下是指定质量为90时生成的文件大小[001-003.webp]

image-20240502193809191

如下是指定质量为30时生成的文件大小:

image-20240502193859560

3.2 compress Type

可以使用指定类型的像素压缩来编辑图像。可选项有:无压缩(None)、BZip、Fax、Group4、JPEG、JPEG2000、无损(Lossless)、LZW、RLE或Zip。

无损(Lossless)指的是无损JPEG,只有在JPEG库已经修补以支持它的情况下才可用。通常不建议使用无损JPEG。

当编写ICO文件时,可以通过指定Zip压缩来请求以PNG格式编码图像。

4.批量转换

直接使用通配符, 或者使用mogrify命令

4.1 magick

 $ magick *.jpg  test%03d.webp

执行完上个命令后, 结果如下图所示:

image-20240502190741031

4.2 mogrify

下列命令将目录下所有jpg图片转为webp格式的图片(图片名称不变, 仅转换文件格式-修改后缀),需要注意如果不使用-format参数,会直接在原图上修改.

 $ mogrify -format webp *.jpg
image-20240502191545644

5. 常用的命令行工具

  1. magick:主要命令,整合了以前版本中的convert、identify等命令,用于进行图像格式转换、大小调整、图像合并等操作。
  2. mogrify:与magick命令类似,用于对图像进行批量处理,但它直接修改原始图像文件,而不是创建新的输出文件。
  3. identify:用于获取图像文件的信息,如格式、尺寸、颜色信息等。
  4. composite:用于将一个图像叠加在另一个图像上,可以实现图像的合成效果。
  5. montage:用于创建多图像拼贴,可以将多张图片排列在一起形成一个组合图像。
  6. animate:用于播放动画,可以将一系列图像文件组合成一个动画效果。
  7. stream:用于将图像数据从文件或标准输入流中读取,并输出图像信息。

还有什么其他问题欢迎随时提问! 寇墨喜欢交流~~