问题标签 [imagemagick-montage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
377 浏览

image-processing - 如何使用 ImageMagick 以最佳方式在页面中放置多个图像

假设我在一个文件夹中有一堆不同大小的图像。目标是以空白最小的方式将图像放入多个页面(例如A4)。不应该涉及任何压缩或调整大小。一些图像会被旋转是可以接受的。
这是我想出的,但不尝试以任何方式“适合”图像:

是否可以使用 imagemagick 和 montage 开关?
我猜计算几何算法应该改变上面命令的 2x2 和 +20+20 部分,对吧?

0 投票
1 回答
117 浏览

imagemagick - 使用缺失文件创建固定大小的图像蒙太奇

环境

假设我们有一个包含N个元素的列表,其中一个元素可以图像的路径(例如a.jpg) ,也可以是表示文件丢失的NULL 。

示例N = 6):a.jpg, NULL ,c.jpg, NULL , NULL , f.jpg

所有提到的图像 ( a.jpg, c.jpg, f.jpg) 都保证具有相同的分辨率。

任务

创建一个固定宽度montage(例如out.jpg),其中NULL值被替换为分辨率与、、的常用分辨率一致的黑色图像。我想避免创建实际图像,而是更愿意根据需要即时创建图像。a.jpgc.jpgf.jpgblack.jpg

0 投票
1 回答
190 浏览

imagemagick - 如何在不使用任何临时文件的情况下将 Imagemagick 蒙太奇输出和图像属性传递给转换命令?

我有一组图像,我可以montage在它们上使用 Imagemagick 命令来生成具有透明背景的蒙太奇图像文件(我们称之为fgimg)。现在我有另一个现有图像(我们称之为bgimg),我想使用(在使用convert命令进行一些特殊处理后)作为 的背景fgimg,这可以在同一convert命令中实现。fgimg在这一点上,避免将临时文件写入磁盘似乎是微不足道的,只需通过管道将 的标准输出montage传输到convert.

我的问题是我正在应用的特殊处理bgimg将需要一些我事先不知道的图像属性知识fgimg(例如,调整大小bgimg以具有与 相同的大小)。如何在命令中检索和使用这些信息?fgimgconvert

注意:我在 Linux 上使用 Imagemagick 版本 6.9.7-4。


我将在下面包含一些命令以进一步详细说明问题。

以下命令fgimg从一组输入图像生成蒙太奇图像。输出采用“特殊”miff格式(这似乎最适合稍后处理的临时输出),并且具有透明背景,以便以后可以应用实际背景。这里的其他选项大部分都不重要,但重点是无法提前确定输出大小(维度)。

接下来,我有另一个输入图像bgimg.jpg。我想在将其用作背景之前对其进行一些处理fgimg。一般来说,处理可能非常复杂,但在这个例子中,我想:

  1. 调整大小bgimg.jpg以适应尺寸,fgimg无需任何裁剪;
  2. 在边缘周围应用淡入黑效果;
  3. 使其大小与 相同fgimg,背景为黑色;
  4. 将其与fgimg生成最终输出相结合。

请注意,我需要fgimg两个地方的大小。我可以先将其提取到一个 shell 变量中:

然后我可以在一个convert命令中完成上述所有步骤(注意$size使用了两次):

现在问题来了:我想避免将临时文件写入fgimg磁盘。

我可以在and命令中替换miff:fgimg为,然后将一个管道传递给另一个:. 但是我该如何处理?miff:-montageconvertmontage ... | convert ...$size

我尝试使用文件描述符 ( miff:fd:3) 但这似乎不起作用,对此问题的评论证实了这一点。

有没有办法在不创建临时文件的情况下做到这一点(在 Imagemagick v6 中)?

0 投票
1 回答
44 浏览

imagemagick - 外部磁盘作为临时文件夹

我正在尝试使用蒙太奇(Windows 10 上的 ImageMagick 7.0.11)将几个大 jpg 合并成一个大 tiff(BigTiff)。该过程需要大量磁盘空间,我正在尝试使用外部 2TB 磁盘作为临时文件夹,因为我的主驱动器已用尽并导致 ImageMagick 退出。我尝试使用-define registry:temporary-path,但似乎 ImageMagick 无法访问临时文件的磁盘。我可以使用 ImageMagick 将文件读取和写入到外部磁盘,我只是在让 ImageMagick 将磁盘用于临时文件时遇到问题。

这是我正在使用的完整命令(D:\ 是外部驱动器,我创建了一个名为 tmp 的文件夹):

当我尝试运行该命令时,我立即收到以下错误,而没有任何内容写入磁盘:

0 投票
0 回答
535 浏览

compiler-errors - Imagemagick 没有此图像格式“PNG”Ubuntu 20.04 的解码委托

我正在尝试在 ubuntu 20.04 上安装 Imagemagick,但每次运行以下命令时:

魔术蒙太奇 frame_*.png -mode concatenate -background none -tile x1 -resize 512X512 output.svg

收到以下错误:

我是如何编译 IMAGEMAGICK 的?

  1. wget https://www.imagemagick.org/download/ImageMagick.tar.gz
  2. tar xvzf ImageMagick.tar.gz
  3. cd ImageMagick-7.0.11-7
  4. $./configure
  5. make
  6. make install
  7. sudo ldconfig /usr/local/lib

我还尝试过什么?

我试图修改配置命令并尝试使用各种参数但同样的问题:

版本文本

我想要的是?

没有代表所以我想要的是如何添加代表?任何建议都可能有所帮助。

0 投票
0 回答
52 浏览

imagemagick - ImageMagick Montage:设置图像大小和页面大小

我正在尝试使用蒙太奇为我正在开发的纸牌游戏打印代理(类似于万智牌)。我希望将页面大小设置为字母,每页显示四个图像,并在 300 DPI 下将图像设置为 2.5 x 3.5 英寸。

我使用-page letter参数来获得正确的页面大小。我设置-tile 2x2为每页有四个图像。我设置geometry +10+10在图像之间留出一些空间。

但是,蒙太奇会调整图像的大小,它们每张大约占一页的 1/4,这比我想要的要大得多。geometry例如,我尝试将像素设置为-geometry 744x1039+10+10 -density 300300 DPI 中的 2.5 x 3.5",但这不起作用——图像尺寸保持不变。

如何将页面 DPI 设置为 300,并将蒙太奇中每个图像的大小设置为 2.5" x 3.5"?

0 投票
1 回答
49 浏览

python - 创建 15000 张图像的蒙太奇

我正在尝试使用 imagemagick montage 命令创建 15000 张图像的拼贴/蒙太奇。该工具适用于一小部分图像,但是当尝试使用 15K 图像创建蒙太奇时,程序崩溃,因为它不能只加载 15K 图像进入主内存。我认为以流的形式打开文件,然后以 100 个为一组进行堆叠是可行的,但如果有人有一个不错的解决方案,那将会很有帮助。