Optimization 如何从不同大小和纵横比的图像中使用ImageMagick制作蒙太奇?
我有很多图像,不同的大小和纵横比。有可能把它们合成蒙太奇吗?我的意思是,在我为建立一个公共行的图像设置了一个公共高度之后,将它们以最佳方式排列成行。当然,不允许修改图像的纵横比,也不允许在最终蒙太奇或复制中省略任何图像 蒙太奇中图片行的高度通常不相等,但它们的值应保持在最小范围内(在统计意义上),或者换句话说:行高度平均值的标准偏差必须最小化 蒙太奇所需的宽度和高度如(a)所示 或者给出了宽度和允许的比率范围(或等效的高度范围)(b.),例如,宽度必须是1024像素,高度必须是w/h<0.9和w/h>0.8 1.)图像必须按照其初始固定顺序包装在蒙太奇中。在这种情况下,必须在蒙太奇中开始的新图像行之后找到图像(简单) 2.)允许更改图像的顺序。在这种情况下,必须找到一种排列,当每个图像被压缩到蒙太奇(硬)中时,这种排列将导致最终行高度的标准偏差最小化 例如:Optimization 如何从不同大小和纵横比的图像中使用ImageMagick制作蒙太奇?,optimization,resize,imagemagick,crop,montage,Optimization,Resize,Imagemagick,Crop,Montage,我有很多图像,不同的大小和纵横比。有可能把它们合成蒙太奇吗?我的意思是,在我为建立一个公共行的图像设置了一个公共高度之后,将它们以最佳方式排列成行。当然,不允许修改图像的纵横比,也不允许在最终蒙太奇或复制中省略任何图像 蒙太奇中图片行的高度通常不相等,但它们的值应保持在最小范围内(在统计意义上),或者换句话说:行高度平均值的标准偏差必须最小化 蒙太奇所需的宽度和高度如(a)所示 或者给出了宽度和允许的比率范围(或等效的高度范围)(b.),例如,宽度必须是1024像素,高度必须是w/h0.8 1.
我不确定我是否正确理解了你的问题 这是我对它的看法。假设您有8个不同大小的不同图像。出于演示目的,我将让ImageMagick创建8种不同的色块:
convert -size 90x90 xc:yellow y.png
convert -size 120x120 xc:red r.png
convert -size 60x210 xc:green g.png
convert -size 150x180 xc:blue b.png
convert -size 30x60 xc:cyan c.png
convert -size 150x90 xc:magenta m.png
convert -size 90x120 xc:gray Gr.png
convert -size 120x90 xc:black K.png
您可以通过多种不同的方式蒙太奇这些补丁:
convert \( y.png r.png g.png b.png +append \) \
\( c.png m.png Gr.png K.png +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage0.png
此命令不会缩放不同的面片。它将它们放置在2行4个补丁中,并将它们拼接成原始尺寸。空白处是补片不“适合”的地方:
此命令将所有不同的面片缩放到60像素的公共高度(保留其各自的纵横比),并将它们放置在2行和4个面片中:
convert \( y.png r.png g.png b.png -resize 60x +append \) \
\( c.png m.png Gr.png K.png -resize 60x +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage2.png
convert \( y.png r.png g.png b.png -resize 60x80\! +append \) \
\( c.png m.png Gr.png K.png -resize 60x80\! +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage3.png
此命令将所有不同的面片缩放为60像素的公共宽度(保留其各自的纵横比),并将它们放置在2行和4个面片中:
convert \( y.png r.png g.png b.png -resize 60x +append \) \
\( c.png m.png Gr.png K.png -resize 60x +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage2.png
convert \( y.png r.png g.png b.png -resize 60x80\! +append \) \
\( c.png m.png Gr.png K.png -resize 60x80\! +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage3.png
此命令将所有不同的面片缩放为60x80像素的尺寸(覆盖其原始纵横比),并将其放置在2行和4个面片中:
convert \( y.png r.png g.png b.png -resize 60x +append \) \
\( c.png m.png Gr.png K.png -resize 60x +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage2.png
convert \( y.png r.png g.png b.png -resize 60x80\! +append \) \
\( c.png m.png Gr.png K.png -resize 60x80\! +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage3.png
如果这是一项“一生一次”的任务,我会推荐众多在线服务之一。它们提供了编辑图像的创造性方法。ImageMagick的蒙太奇命令不会排列具有不同大小/纵横比的图像。您是否认为可以像我们最喜爱的搜索引擎那样排列多个图像,并使用其图片搜索结果?或者你是否想到了更为详细的“修剪损失问题”(《修剪损失问题的基于规则的方法》,Int.J.Prod.Res.20,第401-415页,1991)?不管怎样-有趣的问题…我真的不明白你想要什么。如果您为所有这些设置了一个共同的高度或宽度,并且您还可以“裁剪”它们,那么“最佳安排”它们也没有任何问题。或者我不明白的是什么?