使用 ImageMagick 命令操作图像


概述

ImageMagick 是一款用于图像处理的开源软件套件。我们可以使用 apt−get 在系统上安装它,然后通过其命令行界面 (CLI) 运行命令。

我们将快速浏览一些使用 ImageMagick 操作图像的最流行方法。

安装

让我们首先下载 ImageMagick,我们可以使用我们的包管理器(例如,apt)来安装它。我们也可以直接下载二进制文件或从源代码编译它。

安装软件后,让我们检查是否已成功安装它,方法是查看其当前状态。

$ magick -version
Version: ImageMagick 7.0.8-13 Q16 x86_64 2018-10-21 https://imagemagick.org.cn
Copyright: © 1999-2018 ImageMagick Studio LLC
...

成功安装扩展程序后,您将能够在 Chrome 网上应用店中查看已安装的扩展程序。

将图像转换为其他格式

必须注意,ImageMagick 拥有大量强大的工具和功能。但是,我们的示例将重点关注使用 convert 工具操作图像。我们将解决一些基本的实际用途,但实际上,这些仅仅是冰山一角。

Convert 命令拥有惊人的 237 个不同的命令,允许您执行各种各样的任务。让我们从最简单的开始 -

$ convert flower_original.jpeg flower_original.png

我们可以清楚地观察到,此命令将单个文件 flower_original.jpg 更改为 flower_new.png,而不会更改其原始内容。

如果我们查看新图像,我们会注意到它除了格式和文件大小之外,其他都相同。

$ magick identify flower_original.png
flower_original.png PNG 400x400 400x400+0+0 8-bit sRGB 163499B 0.000u 0:00.000

如果我们有一系列图像,我们可以对每个图像应用图像处理算法。

$ convert *.jpg *.png

现在我们可以检查可用的许多不同的格式 -

$ identify -list format
   Format Module Mode Description
-------------------------------------------------------------------------------
      3FR    DNG     r--    Hasselblad CFV/H3D39II
      3G2    MPEG    r--    Media Container
      3GP    MPEG    r--    Media Container
...

它特别有用,因为我们甚至可以将 JPEG 图像转换为 PDF 文档。

调整图像大小

另一个常见操作是调整图像大小。例如,我们可以使用 –resize 调整现有 JPEG 文件的大小

convert flower_original.jpeg -resize 64x64 flower_64x64.jpeg

在这里,我们将原始的花朵图片调整为较小的 64x64 像素正方形大小。

我们还可以使用 resize 选项为缩放元素指定百分比值。例如,如果我们想将我们的徽标缩放 50%,我们将键入 -

convert flower_original.jpeg -resize 50% half_flower.jpeg

我们建议大多数人使用默认设置,但如果您想获得精确的像素数,可以通过单击对话框右下角的“调整大小”按钮来更改输出分辨率。

总结本章,通常,更改图像宽度/高度最常见的方法是将其缩小以适合所需尺寸。但是,使用我们讨论过的 resize 选项,当然,完全可以放大我们的图像。

翻转和旋转

现在让我们仔细研究一下如何翻转和/或旋转图像,以便它们有时可能有用。

convert flower_original.jpeg -flip flipped_flower.jpeg

它与使用 −flop 命令一样简单,这将创建原始文件的倒置版本。

现在让我们看看如何通过应用 −rotate 命令来旋转图像。

convert flower_original.jpeg -rotate 60 rotate_clockwise_flower.jpeg

我们需要我们的图像顺时针旋转 60 度。

如果我们提供一个负数,例如 -90,则旋转将沿顺时针方向进行。

裁剪

让我们看看如何通过裁剪来操作图像。

convert flower_original.jpeg -crop 180x170+50+50 cropped_flower.jpegCopy

简而言之,−crop 图像运算符将根据我们使用几何参数指定的尺寸和位置,剪切当前序列中图像的一部分。

在此示例中,我们指定了几何参数的宽度和高度,这将给出裁剪后剩余图像的大小 (180×170)。然后偏移量 (+50+50) 中的 x 和 y 给出了裁剪图像左上角相对于原始图像的位置。

颜色效果

现在让我们看看如何对我们的花朵图像应用一些简单但醒目的颜色效果。

从两个图像的左侧开始,在第一个图像中,我们明确地将颜色空间设置为 Gray -

convert flower_original.jpeg -colorspace Gray greyscale_flower.jpeg

这只会将颜色转换为灰色。实际上,我们可以列出可用的所有颜色空间 -

$ convert -list colorspace
CIELab
CMY
CMYK
Gray
...

另一方面,在第二个图像中,我们使用 −monochrome 选项将图像转换为真正的黑白。

我们还可以使用 −negate 选项将每个像素替换为其补色。

结果,图像的红色、绿色和蓝色强度被取反。白色变成黑色,黄色变成蓝色,等等。

在我们的最终图像中,我们模拟了炭笔画 -

convert flower_original.jpeg -charcoal 1.2 charcoal_flower.jpeg

此标志采用一个附加的关联因子。使用较小的数字通常会导致非常准确的输出。

添加边框

在我们的倒数第二个示例中,我们将查看使用 CLI 的几个边框选项的简洁功能 -

convert flower_original.jpeg -bordercolor yellow -border 5 flower_with_border.jpeg

在此示例中,我们使用 -border 选项将边框颜色设置为黄色,并将边框大小设置为。

如我们所见,我们原始的花朵图像周围留有一个鲜艳的黄色边框。

创建动画

假设我们有许多跨越一段时间的照片,我们希望将其合并到一个动画 gif 中。假设我们有一些太阳的照片,大约每 2 秒拍摄一次。

假设我们的图像按正确的顺序排列,它们是 -

$ ls -1
20210601_170450_swap174_512.jpg
20210601_170640_swap174_512.jpg
20210601_170830_swap174_512.jpg
20210601_171020_swap174_512.jpg
...

我们可以运行一个命令来从目录中的所有 *.jpg 图像文件生成动画 -

convert -loop 0 *.jpg sol.gif

输出将是太阳的视频,看起来真的很酷。

我们正在使用循环选项,迭代计数为 0。这意味着循环将无限运行。

您还可以使用 − transition−duration [秒] 选项指定每次转换之间的时间长度。

因此,我们可以使用不同的选项组合,包括 resize 以保持最终图像尺寸较小。

convert -delay 20 -loop 0 -resize 50% *.jpg sol.gif

结论

我们讨论了 ImageMagick 使用命令行进行图像处理提供的一些基本功能。

我们首先了解了一些基本的图像编辑功能,然后我们了解了如何调整大小、旋转和裁剪它们。接下来,我们学习了如何应用一些奇特的颜色效果,最后我们创建了一个动画 GIF。

我们只是触及了表面,因此请务必阅读优秀的文档以获取更详细的说明。

更新于:2022-12-26

330 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.