如何在ImageMagick中提高蒙太奇的图像输出?

omi*_*xam 9 image-manipulation imagemagick montage

我使用蒙太奇加入图像,但图像输出的分辨率低于图像输入的分辨率.

我的图像输入的尺寸为640x480

但我得到的输出是256x378

我在网上搜索,找不到提高输出图像质量的解决方案.

我正在使用的蒙太奇命令

montage -tile 2x3 1.png 2.png 3.png 4.png 5.png 6.png -resize 1024x1024  montage_png.png
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何获得更好的输出分辨率?

Gir*_*riB 8

将操作样式(-mode)的模式设置为concatenate值(如文档中所示).

例如:

montage -mode concatenate file1.jpg file2.jpg output.jpg
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 6

建议1

以这种方式尝试...让montage图像整理成蒙太奇,然后将结果传递convert给调整结果大小。

montage -tile 2x3 1.png 2.png 3.png 4.png 5.png 6.png miff:- | convert miff:- -resize 1024x1024 montage.png
Run Code Online (Sandbox Code Playgroud)

中间图像作为MIFF(Magick图像文件格式)传递,该格式保留所有细节,元数据和质量。

建议2

如果它始终只是5或6张图像,而不是数百张,您也可以convert像这样一次完成所有操作。您需要知道的是,+append将图像连续排成一行,然后-append将图像排成一列。因此,我要连续加入1&2,连续3&4,连续5&6,然后将三行放入堆栈中并调整结果的大小。

convert [12].png +append \( [34].png +append \) \( [56].png +append \) -append -resize 1024x1024 result.png
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 在第一种方法或OP的尝试中需要`-mode concatenate`。 (4认同)

SDs*_*lar 6

蒙太奇使用起来很简单,如下所示:

montage -mode concatenate -tile 2x3 *.png -resize 1024x1024 outfile.png
Run Code Online (Sandbox Code Playgroud)

但是如果你第二次运行它,这个命令当然也会包含 outfile.png 作为新蒙太奇的一部分。


蒙太奇足够聪明,可以正确更改格式,因此可以将命令更改为:

montage -mode concatenate -tile 2x3 *.png -resize 1024x1024 outfile.jpg
Run Code Online (Sandbox Code Playgroud)

这会产生一个 2048 像素宽的文件。


如果输入文件都是统一大小,最简单的方法是像这样使用它:

montage -mode concatenate -tile 2x3 *.jpg outfile.jpg
Run Code Online (Sandbox Code Playgroud)

说到问题:

gnuplotpng终端的默认画布尺寸为640x480,所以2×3的蒙太奇到适当JPG的文件,它是宽1280个像素的结果。

显示在太宽而无法打印的网页上。打印边界大约为 640 像素宽(取决于边距的设置方式),因此它通常适用于:

montage -mode concatenate -tile 2x3 -resize 320x240 *.png outfile.jpg
Run Code Online (Sandbox Code Playgroud)

使用 320x240 保留原始绘图的纵横比。

如果这是所需的结果,则应在set terminal内部命令 中将其强制为正方形gnuplot

图像后处理的最佳做法是避免超出生成原件的程序的意图扭曲图像。