imagemagick
在最近有关轻量级图像查看器的文章中,作者Scott Nesbitt提到了Display,它是ImageMagick的组件之一。 ImageMagick不仅是图像查看器,它还提供了大量用于图像编辑的实用程序和选项。 本教程将说明有关在ImageMagick中使用display命令和其他命令行实用程序的更多信息。
有了许多出色的图像编辑器,您可能想知道为什么有人会选择主要基于非GUI命令行的程序,例如ImageMagick。 一方面,它是坚如磐石的可靠产品。 但是更大的好处是,它允许您设置方法以特定方式编辑大量图像。
常见ImageMagick命令的介绍应该可以帮助您入门。
显示命令
让我们从斯科特提到的命令开始: display 。 假设您的目录中包含许多要查看的图像。 使用以下命令开始显示 :
cd Pictures
display
* .JPG
这将以字母数字顺序依次加载JPG文件,一次在一个简单的窗口中加载一次。 左键单击图像会弹出一个简单的独立菜单(您将在ImageMagick中看到的唯一GUI功能)。
在显示菜单中可以找到以下内容:
- 文件包含以下选项: 打开,下一步,以前,选择,保存,打印,删除,新建,可视目录和退出 。 选择选择要显示的特定图像文件, Visual Directory将显示当前工作目录中的所有文件(而不仅仅是图像)。 如果要滚动浏览所有选定的图像,可以使用Next和Former ,但是使用它们的键盘快捷键(下一个图像用空格键,上一个图像使用Backspace)更容易。
- Edit提供了Undo,Redo,Cut,Copy和Paste ,它们只是更特定的编辑过程的辅助命令。 当您在进行不同的编辑以查看它们的作用时, 撤消特别有用。
- 视图具有“ 一半大小”,“原始大小”,“两倍大小”,“调整大小”,“应用”,“刷新 ”和“还原” 。 这些大多是不言自明的,除非应用了其中之一后保存图像,否则图像文件不会更改。 调整大小会弹出一个对话框,以像素为单位指定特定大小,可以选择是否包含受限制的尺寸或百分比。 我不确定Apply会做什么。
- 变换显示裁切,剁碎,翻转,翻转,向右旋转,向左旋转,旋转,剪切,滚动和修剪边缘 。 Chop使用单击拖动操作来剪切图像的垂直或水平部分,将边缘粘贴在一起。 学习这些功能的最佳方法是与它们一起玩,而不是阅读它们。
- 增强功能提供色相,饱和度,亮度,伽玛,扩散,暗淡,对比度拉伸,S形对比度,归一化,均衡,求反,灰度,贴图和量化 。 这些是用于色彩操纵以及调整亮度和对比度的操作。
- 效果具有去斑点,浮雕,减少噪声,添加噪声,锐化,模糊,阈值,边缘检测,扩散,阴影,升高和分段 。 这些是相当标准的图像编辑效果。
- F / X选项包括“ 晒化”,“棕褐色调”,“漩涡”,“ Implode”,“晕影”,“波浪”,“油画颜料 ”和“ 木炭绘制” ,这也是图像编辑器中非常常见的效果。
- 图像编辑包含注释,绘制,颜色,遮罩,合成,添加边框,添加框架,注释,启动和关注区域 。 Launch将在GIMP中打开当前图像(至少在我的Fedora中)。 感兴趣区域允许您选择一个区域以进行编辑; 按Esc键取消选择区域。
- Miscellany提供图像信息,缩放图像,显示预览,显示直方图,显示遮罩,背景,幻灯片和首选项 。 Show Preview看起来很有趣,但是我很难使它生效。
- 帮助显示概述,浏览文档和关于显示 。 概述提供了许多有关显示的基本信息,并包括了大量用于各种命令和操作的内置键盘等效项。 在我的Fedora中, 浏览文档使我无处可去。
尽管display的GUI界面提供了相当称职的图像编辑器,但是ImageMagick还提供了89个命令行选项,其中许多选项与上面的菜单项相对应。 例如,如果我要显示比屏幕大的数字图像目录,而不是在它们出现在屏幕上后分别调整其大小,则可以指定:
display -resize 50 % * .JPG
上面菜单中的许多操作也可以通过在命令行中添加选项来完成。 但是菜单中没有其他选项,包括‑monochrome (可将图像转换为黑白(非灰度))和‑colors ,您可以在其中指定要在图像中使用多少种颜色。 例如,尝试以下方法:
display -resize 50 % -monochrome * .JPG
display -resize 50 % -colors 8 * .JPG
这些操作将创建有趣的图像。 减少颜色后,尝试增强颜色或进行其他编辑。 请记住,除非您保存并覆盖它们,否则原始文件将保持不变。
转换命令
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](https://opensource.com/sites/default/files/u128651/monochrome_demo.jpg)
convert DSC_0008.jpg -charcoal 1.2 charcoal_example.jpg
![木炭的例子 charcoal example](https://opensource.com/sites/default/files/u128651/charcoal_demo.jpg)
‑monochrome选项没有关联的设置,但是‑ 炭变量需要关联的因子。 以我的经验,它需要很小的数量(甚至少于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](https://opensource.com/sites/default/files/u128651/reduced_demo.jpg)
原始图像在左上方。 在第一个命令中,我应用了一个设置为3的edge选项(请参见右上图),这比我所喜欢的要小。 在第二个命令(左下图)中,我们将颜色数量减少到了四种,看起来与原始颜色没有太大不同。 但是,看看在第三条命令(右下图)中将二者结合时会发生什么! 也许这有点花哨,但谁能想到原始图像或单独使用这两个选项会得到此结果?
‑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](https://opensource.com/sites/default/files/u128651/canny_demos.jpg)
这有点简约,但我认为它类似于笔墨画,与原始照片有很大的不同。 它不适用于所有图像。 通常,它最适合带有清晰线条的图像。 失去重点的元素可能会消失; 请注意,白鹭图片中的背景沙洲由于模糊而不会显示。 还要注意在船上的图片中,尽管大多数边缘显示得很好,但没有颜色,我们就失去了图片的格式感,因此也许这可能是进行某些数字着色甚至是打印后着色的基础。
蒙太奇命令
最后,我想谈谈蒙太奇命令。 我已经在上面显示了它的示例,其中将单个图像组合为合成图像。
这是我生成木炭示例的方式(请注意,它们全都在一行上):
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管理边框大小。 接下来,我调整了整个最终合成图像的大小( 调整25%的大小 ),并添加了阴影(没有设置,因此为默认设置),最后为蒙太奇创建了标题 。
您可以将所有图像名称放在末尾,最后一个图像名称是保存剪辑画面的文件。 这对于为命令及其所有选项创建别名可能很有用,然后我可以简单地键入别名,然后输入适当的文件名。 我有时这样做是为了减少创建一系列蒙太奇所需的打字。
在-canny例子,我曾在蒙太奇四象。 我添加了-tile选项,特别是-tile 2x ,它创建了两列的蒙太奇。 我可以指定一个Matrix , -tile 2x2或-tile x2来产生相同的结果。
关于ImageMagick,还有很多要学习的东西,所以我计划编写更多有关它的信息,甚至可能使用Perl编写ImageMagick命令的脚本。 尽管该网站缺少示例或显示结果,但ImageMagick拥有大量文档 ,我认为最好的学习方法是尝试并更改各种设置和选项。
imagemagick