开始使用 ImageMagick

了解使用此轻量级图像编辑器查看和修改图像的常用方法。
628 位读者喜欢这篇文章。
Artistic spraypaint bottles

Opensource.com

在最近一篇关于 轻量级图像查看器 的文章中,作者 Scott Nesbitt 提到了 display,它是 ImageMagick 的组件之一。ImageMagick 不仅仅是一个图像查看器,它还提供了大量的实用程序和选项用于图像编辑。本教程将详细介绍如何使用 display 命令和 ImageMagick 中的其他命令行实用程序。

目前有很多优秀的图像编辑器,您可能想知道为什么有人会选择像 ImageMagick 这样主要基于非 GUI 的命令行程序。 一方面,它非常可靠。 但更大的好处是,它允许您设置方法以特定方式编辑大量图像。

这个 ImageMagick 常用命令的介绍应该能让你入门。

display 命令

让我们从 Scott 提到的命令开始:display。 假设您有一个目录,其中包含许多要查看的图像。 使用以下命令启动 display

cd Pictures
display *.JPG

这将按字母数字顺序依次在简单的窗口中一次加载一个 JPG 文件。 左键单击图像会弹出一个简单的独立菜单(您将在 ImageMagick 中看到的唯一的 GUI 功能)。

display menu

opensource.com

以下是您将在 display 菜单中找到的内容

  • 文件 包含选项 打开、下一个、上一个、选择、保存、打印、删除、新建、可视目录退出选择 选择要显示的特定图像文件,可视目录 显示当前工作目录中的所有文件(不仅仅是图像)。 如果你想滚动浏览所有选定的图像,你可以使用 下一个上一个,但使用它们的键盘快捷键更容易(空格键用于下一个图像,退格键用于上一个图像)。
  • 编辑 提供 撤消、重做、剪切、复制粘贴,这些只是更具体的编辑过程的辅助命令。 当您尝试不同的编辑以查看它们的作用时,撤消 特别有用。
  • 查看 具有 半尺寸、原始尺寸、双倍尺寸、调整大小、应用、刷新还原。 这些大部分是不言自明的,除非您在应用其中一个后保存图像,否则图像文件不会更改。 调整大小 会弹出一个对话框,以指定特定的尺寸(以像素为单位,无论是否限制尺寸)或百分比。 我不确定 应用 是做什么的。
  • 转换 显示 裁剪、切碎、水平翻转、垂直翻转、向右旋转、向左旋转、旋转、倾斜、滚动修剪边缘切碎 使用单击拖动操作来切出图像的垂直或水平部分,并将边缘粘贴在一起。 了解这些功能如何工作的最佳方法是玩转它们,而不是阅读它们。
  • 增强 提供 色调、饱和度、亮度、Gamma、Spiff、Dull、对比度拉伸、Sigmoidal 对比度、标准化、均衡化、负片、灰度、映射量化。 这些是用于颜色操作和调整亮度和对比度的操作。
  • 效果 具有 去斑、浮雕、减少噪点、添加噪点、锐化、模糊、阈值、边缘检测、扩散、阴影、提升分割。 这些是相当标准的图像编辑效果。
  • F/X 选项包括 Solarize、棕褐色调、漩涡、内爆、晕影、波浪、油画炭笔画,这些也是图像编辑器中非常常见的效果。
  • 图像编辑 包含 注释、绘制、颜色、遮罩、合成、添加边框、添加框架、注释、启动感兴趣区域启动 将在 GIMP 中打开当前图像(至少在我的 Fedora 中是这样)。 感兴趣区域 允许您选择要应用编辑的区域; 按 Esc 键取消选择该区域。
  • 其他 提供 图像信息、缩放图像、显示预览、显示直方图、显示遮罩、背景、幻灯片首选项显示预览 看起来很有趣,但我很难让它工作。
  • 帮助 显示 概述、浏览文档关于显示概述 提供了关于 display 的大量基本信息,并包括大量用于各种命令和操作的内置键盘等效项。 在我的 Fedora 中,浏览文档 没有把我带到任何地方。

虽然 display 的 GUI 界面提供了一个相当强大的图像编辑器,但 ImageMagick 还提供了 89 个命令行选项,其中许多选项与上面的菜单项相对应。 例如,如果我正在显示一个数字图像目录,这些图像大于我的屏幕尺寸,那么我可以指定

     display -resize 50% *.JPG

上面菜单中的许多操作也可以通过在命令行中添加一个选项来完成。 但还有一些无法从菜单中获得,包括 -monochrome,它将图像转换为黑白色(不是灰度),以及 -colors,您可以在其中指定要在图像中使用多少种颜色。 例如,试试这些

     display -resize 50% -monochrome *.JPG
     display -resize 50% -colors 8 *.JPG

这些操作会创建有趣的图像。 尝试在减少颜色后增强颜色或进行其他编辑。 请记住,除非您保存并覆盖它们,否则原始文件保持不变。

convert 命令

convert 命令有 237 个选项——是的,237 个——提供了你可以做的各种各样的事情(其中一些显示也可以做)。 我将只介绍其中的一些,主要坚持图像操作。 使用 convert 可以做的两件简单的事情是

     convert DSC_0001.JPG dsc0001.png
     convert *.bmp *.png

第一个命令会将单个文件 (DSC_0001) 从 JPG 转换为 PNG 格式,而不更改原始文件。 第二个命令将在目录中的所有 BMP 图像上执行此操作。

如果您想查看 ImageMagick 可以使用的格式,请键入

     identify -list format

让我们挑选一些有趣的方法来使用 convert 命令来操作图像。 这是此命令的一般格式

     convert inputfilename [options] outputfilename

您可以有多个选项,并且它们按照从左到右的顺序完成。

这是一对简单的选项

     convert monochrome_source.jpg -monochrome monochrome_example.jpg

monochrome example

opensource.com

     convert DSC_0008.jpg -charcoal 1.2 charcoal_example.jpg

charcoal example

opensource.com

-monochrome 选项没有相关的设置,但 -charcoal 变量需要一个相关的因子。 根据我的经验,它需要是一个小数(甚至小于 1)才能实现类似炭笔画的东西,否则你会得到相当重的黑色斑点。 尽管如此,图像中的锐利边缘非常清晰,不像炭笔画那样。

现在让我们看看这些

     convert DSC_0032.JPG -edge 3 edge_demo.jpg
     convert DSC_0032.JPG -colors 4 reduced4_demo.jpg
     convert DSC_0032.JPG -colors 4 -edge 3 reduced+edge_demo.jpg

edge and reduced colors example

opensource.com

原始图像位于左上角。 在第一个命令中,我应用了一个 -edge 选项,设置值为 3(参见右上角的图像)——任何小于该值的设置对于我来说都太微妙了。 在第二个命令(左下角的图像)中,我们将颜色数量减少到四种,这与原始颜色没有太大区别。 但是看看当我们将这两个组合在第三个命令(右下角的图像)中时会发生什么! 也许有点华而不实,但谁会想到从原始图像或其自身的任何一个选项中得到这个结果呢?

-canny 命令提供了另一个惊喜。 这是另一种边缘检测器,称为“多阶段算法”。 单独使用 -canny 会产生一个几乎全黑的图像和一些白线。 我用一个 -negate 命令来完成

     convert DSC_0049.jpg -canny 0x1 -negate canny_egret.jpg
     convert DSC_0023.jpg -canny 0x1 -negate canny_ship.jpg

canny demo

opensource.com

这有点极简主义,但我认为它类似于钢笔和墨水画,与原始照片相比,这是一个非常显着的差异。 它并非适用于所有图像; 一般来说,它最适合具有锐利线条的图像。 失焦的元素可能会消失; 请注意,白鹭图片中的背景沙洲是如何没有显示出来的,因为它很模糊。 还要注意在船舶图片中,虽然大多数边缘都显示得很好,但如果没有颜色,我们会失去图片的形态,所以也许这可以成为一些数字着色甚至印刷后着色的基础。

montage 命令

最后,我想谈谈 montage 命令。 我已经在上面展示了它的例子,我在那里将单个图像组合成复合图像。

以下是我生成炭笔示例的方法(请注意,它将全部在一行上)

     montage -label %f DSC_0008.jpg charcoal_example.jpg -geometry +10+10
           -resize 25% -shadow -title 'charcoal demo' charcoal_demo.jpg

-label 选项在每个图像下方用其文件名 (%f) 标记每个图像。 如果没有 -geometry 选项,所有图像都将是缩略图大小(120 像素宽),而 +10+10 管理边框大小。 接下来,我调整了整个最终复合图像的大小 (-resize 25%),并添加了一个阴影(没有设置,因此它是默认的),最后为蒙太奇创建了一个 title

您可以将所有图像名称放在末尾,最后一个图像名称是保存蒙太奇的文件。 这可能有助于为命令及其所有选项创建一个别名,然后我可以简单地键入别名,后跟适当的文件名。 我有时这样做是为了减少创建一系列蒙太奇所需的键入量。

-canny 示例中,我使用了蒙太奇中的四张图片。 我添加了 -tile 选项,特别是 -tile 2x,它创建了一个两列的蒙太奇。 我可以指定一个 matrix-tile 2x2,或者 -tile x2 来产生相同的结果。

关于 ImageMagick 还有很多东西要学习,所以我计划写更多关于它的内容,甚至可能写关于使用 Perl 编写 ImageMagick 命令脚本的内容。 ImageMagick 拥有广泛的文档,虽然该网站缺乏示例或显示结果,但我认为最好的学习方法是通过实验和更改各种设置和选项。

Greg Pittman
Greg 是肯塔基州路易斯维尔的一位退休神经科医生,他对计算机和编程有着长期的兴趣,从 1960 年代的 Fortran IV 开始。 当 Linux 和开源软件出现时,它激发了他学习更多知识的决心,并最终做出贡献。 他是 Scribus 团队的成员。

7 条评论

一个很好的概述和复习。 谢谢!

'display' 是我发现的唯一可以接受 URL 的图像查看器

SourceSite="http://ktvl.com/resources/ftptransfer/ktvl/maps"
alias show_local_radar='display $SourceSite/so_or_no_ca_radar.JPG &'

这非常有趣。 我想更广泛的图像查看器概念可能包括浏览器。

回复 ,作者: Roland (未验证)

我已经安装了如此完整的工具,但不知道它的潜力……哈哈

我甚至使用在线工具来简单地将图片从 png 转换为 jpg!

很高兴知道,谢谢!

这个轻量级的图像编辑器有很多功能。 我计划开始使用 ImageMagick。

很棒的文章 Greg。 我很高兴我们现在有一篇关于 Imagemagick 的文章。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.