使用ImageMagick命令行图像编辑应用程序中的这些技巧更好地管理您的数码照片集。在我之前的ImageMagick入门:使用命令行编辑图像一文中,我展示了如何使用ImageMagick的菜单栏来编辑和重新设置图像样式。在本篇文章中,我将向您展示使用此开源图像编辑器查看图片的另一种方法。不同的风格在深入了解ImageMagick的高级图像查看技术之前,我想分享另一个有趣但简单的使用转换的效果。我在上一篇文章中详细介绍了convert命令。这个技巧涉及命令edgeandnegateoptions:convertDSC_0027.JPG-edge3-negateedge3+negate.jpg使用edge和negate选项前后的图片对比这些让我更喜欢编辑后的图片:大海的样子,植被作为前景和背景,尤其是太阳及其在海面上的反射,绝对是天空。使用display查看一系列图片如果您是像我这样的命令行用户,您就会知道shell为复杂的任务提供了更多的灵活性和快捷方式。下面我将展示一个例子来支持这一点。ImageMagick的显示命令解决了我在GNOME桌面上使用Shotwell图像管理器导入图像时遇到的问题。Shotwell将根据每个导入图像的Exif数据创建一个目录结构,以图像生成或拍摄的日期命名。最终效果是顶级目录以年份命名,然后是以月份命名的子目录(01、02、03等),然后是以每个月的日期命名的子目录。我喜欢这种结构,因为当我想根据图像的创建或拍摄日期查找图像时,它很方便。但是这个结构不是很完善,想查看最近几个月或者去年的所有图片的时候会很麻烦。使用常规图像查看器,我会不断地浏览不同级别的目录,但ImageMagick的显示命令使查看变得更加容易。比如我想查看去年的图片,可以在命令行输入如下显示命令:display-resize35%2017/*/*/*.JPG我可以月复一月,日复一日地看到世界经历了这一年。现在如果我想看一张图片,但我不确定我是在2016年上半年还是2017年上半年拍摄的,我可以通过以下方式找到它:display-resize35%201[6-7]/0[1-6]/*/*.JPG这张受限图片是2016年和2017年1-6月拍摄的,使用蒙太奇查看图片缩略图。如果我现在要找一张图片,我想用display编辑图片的一个问题是它只显示每张图片的文件名,而不是它在目录结构中的位置,所以要找到那张图片并不容易。另外,如果我在从相机下载图片的过程中,不小心把相机内存中的这些图片清空了,导致下一张图片的名称会从DSC_0001.jpg开始,那么在用display显示一个的时候有全年的照片,要在12个月的照片里找很久。这就是montage命令派上用场的地方。它可以将一系列图片缩略图放在一张图片中,这非常有用。例如,您可以使用以下命令来完成上述任务:montage-label%d/%f-title2017-tile5x-resize10%-geometry+4+42017/0[1-4]/*/*.JPG2017JanApr.jpg从左到右,这个命令以一个标签开始,形式是文件名(%f)和目录(%d),中间用/隔开,然后这个命令使用的名字是目录(2017)作为标题,然后将图像排列成5列,每列缩放10%(这个参数与我的屏幕很匹配)。每个图像周围的几何设置将留空,***指定要包含在此合成图像中的图像,以及适当的文件名(2017JanApr.jpg)。现在图片2017JanApr.jpg可以作为一个索引,这样我就可以不时使用它来查看这一时期的所有图片。注意内存消耗您可能想知道为什么我在上面的组合中只指定了4个月的时间段(1月到4月)。因为蒙太奇会消耗大量内存,所以需要多加注意。我的相机拍出的照片每张大约2.5MB,我发现我的系统可以轻松处理60张图片。但是一旦图片增加到80,如果此时有其他程序(如Firefox,Thunderbird)在后台运行,那么我的电脑就会死机,这个好像和内存占用有关,蒙太奇可能会占用80%可用RAM甚至更多(您可以在此期间运行top命令以查看内存使用情况)。如果我关闭其他程序,我可以在系统死机前处理80张图片。以下命令可以让您知道在运行蒙太奇命令之前需要处理的图片数量:ls2017/0[1-4/*/*.JPG>filelist;wc-lfilelistls命令生成我们搜索的文件列表,然后通过重定向将该列表保存在名为filelist的任意文件中。然后带-l选项的wc命令输出列表文件中有多少行,换句话说,显示需要处理的文件数。以下是我运行命令后的输出:163filelist啊!从1月到4月,我实际上有163张图像,使用它们创建合成图像肯定会使我的系统崩溃。我需要把这个列表缩减一点,也许只缩减三月或更早的图片。但如果我在4月20日到30日之间拍了很多照片,我认为这就是问题所在。以下命令可以帮助指出这一点:ls2017/0[1-3]/*/*.JPG>filelist;ls2017/04/0[1-9]/*.JPG>>文件列表;ls2017/04/1[0-9]/*.JPG>>文件列表;wc-lfilelist上面一行有4条命令,它们之间用分号隔开。第一个命令指定一月到三月之间拍摄的照片;第二个命令使用>>将4月1日至9日拍摄的照片附加到此列表文件;第三个命令会将4月10日至19日的照片添加到列表中。最后显示结果:81filelist我知道如果我关闭其他程序,处理81张图片是可行的。使用montage对其进行处理非常简单,因为我们只需要在montage命令的末尾添加上面所做的处理即可:montage-label%d/%f-title2017-tile5x-resize10%-geometry+4+42017/0[1-3]/*/*.JPG2017/04/0[1-9]/*.JPG2017/04/1[0-9]/*.JPG2017Jan01Apr19.jpg从左边在右边,蒙太奇命令之后的文件名***将用作输出,而它之前的所有内容都是输入。此命令运行大约需要3分钟,并生成大小约为2.5MB的图像,但我的系统有点迟钝。显示复合图像第一次使用显示查看大型复合图像时,您会看到复合图像的宽度非常适合,但图像的高度被压缩以适合屏幕。不要惊慌,只需左键单击图像,然后选择“查看”>“原始大小”,整个图像就会显示出来。再次单击图像以隐藏菜单栏。我希望本文能帮助您以新的方式查看图像。在我的下一篇文章中,我将讨论更复杂的图像处理技术。
