ImageMagick 的一些高级图片查看技巧(2)

你可能会好奇为什么我在上面的合成图中只特别指定了为期 4 个月(从一月到四月)的图片。因为 montage 将会消耗大量内存,所以你需要多加注意。我的相机产生的图片每张大约有 2.5MB,我发现我的系统可以很轻松地处理 60 张图片。但一旦图片增加到 80 张,如果此时还有另外的程序(例如 Firefox 、Thunderbird)在后台工作,那么我的电脑将会死机,这似乎和内存使用相关,montage可能会占用可用 RAM 的 80% 乃至更多(你可以在此期间运行 top 命令来查看内存占用)。假如我关掉其他的程序,我便可以在我的系统死机前处理 80 张图片。

下面的命令可以让你知晓在你运行 montage 命令前你需要处理图片张数:

ls2017/0[1-4/*/*.JPG > filelist; wc -l filelist

ls 命令生成我们搜索的文件的列表,然后通过重定向将这个列表保存在任意以名为 filelist 的文件中。接着带有 -l 选项的 wc 命令输出该列表文件共有多少行,换句话说,展示出了需要处理的文件个数。下面是我运行命令后的输出:

163 filelist

啊呀!从一月到四月我居然有 163 张图片,使用这些图片来创建一张合成图一定会使得我的系统死机的。我需要将这个列表减少点,可能只处理到 3 月份或者更早的图片。但如果我在 4 月 20 号到 30 号期间拍摄了很多照片,我想这便是问题的所在。下面的命令便可以帮助指出这个问题:

ls2017/0[1-3]/*/*.JPG > filelist; ls 2017/04/0[1-9]/*.JPG >> filelist; ls 2017/04/1[0-9]/*.JPG >> filelist; wc -l filelist

上面一行中共有 4 个命令,它们以分号分隔。第一个命令特别指定从一月到三月期间拍摄的照片;第二个命令使用 >> 将拍摄于 4 月 1 日至 9 日的照片追加到这个列表文件中;第三个命令将拍摄于 4 月 10 日到 19 日的照片追加到列表中。最终它的显示结果为:

81 filelist

我知道假如我关掉其他的程序,处理 81 张图片是可行的。

使用 montage 来处理它们是很简单的,因为我们只需要将上面所做的处理添加到 montage 命令的后面即可:

montage -label %d/%f -title 2017-tile 5x-resize 10%-geometry +4+42017/0[1-3]/*/*.JPG 2017/04/0[1-9]/*.JPG 2017/04/1[0-9]/*.JPG 2017Jan01Apr19.jpg

从左到右,montage 命令后面最后的那个文件名将会作为输出,在它之前的都是输入。这个命令将花费大约 3 分钟来运行,并生成一张大小约为 2.5MB 的图片,但我的系统只是有一点反应迟钝而已。

展示合成图片

当你第一次使用 display 查看一张巨大的合成图片时,你将看到合成图的宽度很合适,但图片的高度被压缩了,以便和屏幕相适应。不要慌,只需要左击图片,然后选择 View > Original Size 便会显示整个图片。再次点击图片便可以使菜单栏隐藏。

我希望这篇文章可以在你使用新方法查看图片时帮助你。在我的下一篇文章中,我将讨论更加复杂的图片操作技巧。

作者简介

Greg Pittman - Greg 肯塔基州路易斯维尔的一名退休的神经科医生,对计算机和程序设计有着长期的兴趣,最早可以追溯到 1960 年代的 Fortran IV 。当 Linux 和开源软件相继出现时,他开始学习更多的相关知识,并分享自己的心得。他是 Scribus 团队的成员。

via: opensource

相关阅读

利用ImageMagick绘制三基色原理图

Linux下PHP支持ImageMagick和MagicWandForPHP

Linux下用ImageMagick玩图像魔术

Ubuntu 16.04下交叉编译ImageMagick 

Linux下ImageMagick和MagicWand For PHP的安装

Linux下ImageMagick和JMagick的安装整理

Linux系统上编译好的ImageMagick迁移到另一台机器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12812.html