使用Rmagick定义蒙太奇的行和列

时间:2014-01-21 23:56:31

标签: ruby imagemagick rmagick

我在ImageList中有一组图像,我想创建一个160x600的蒙太奇。以下是我到目前为止所做的事情:

collage = image_list.montage do |mont|
  mont.background_color = "#444444"
  mont.geometry = '160x600'
end

我认为mont.geometry会设置得到的拼贴画的宽度/高度,但不是,我认为它实际上正在调整拼贴中放置的每个图像。

如何确保生成的拼贴画是160x600,并且形成它的图像是否按照这个尺寸调整大小?

1 个答案:

答案 0 :(得分:0)

mont.geometry命令实际上是关于每个小图像放在一起之前。您可以使用image_list.size来确定您拥有的图像数量,然后使用以下类型的命令将各种图像组合在一起。

width = 160 / image_list.size
height = 600 / image_list.size

collage = image_list.montage do |mont|
    mont.geometry = width.to_s + 'x' + height.to_s
end

如果你进入小数,事情可能不会很好。确保您的值均匀分配,或者重写代码以有效地处理它。

另一种选择是首先制作你喜欢的任何尺寸的蒙太奇,并在它完成后调整它的大小。他们都承担了相同的工作量。