Я потерян и нуждаюсь в направлении.
Мы пытаемся отрисовать кучу маленьких изображений (X) на одном унифицированном холсте, используя imagemagick.
РазличныеX могут быть одного из пяти различных размеров: 20x20, 40x40, 60x60, 80x80 или 100x100 каждый.Ширина большого изображения всегда устанавливается на 600, но высоту можно регулировать по мере необходимости.
Мы можем использовать от 10 до 10000 X в любой данный момент.
В настоящее время простое доказательство концепции, с которой мы работаем, выглядит примерно так:
images.each do |image|
image = Magick::Image.read("#{RAILS_ROOT}/public/images/#{image}").first
w = image.columns
h = image.rows
pixels = image.export_pixels(0, 0, w, h, "RGB")
img.import_pixels(x, y, w, h, "RGB", pixels)
x += w
end
... это просто и глупо, но выдает серию изображений, объединенных в одно.Почти там; -)
Кто-нибудь знает эффективный алгоритм, с помощью которого мы можем перебирать много X и размещать их рядом, занимая несколько строк и все же оптимизируя пространство? Цель здесь - создать единое изображение без пробелов, построенное из всех маленьких изображений.
Как уже говорилось, мне очень хотелось бы услышать любые ваши отзывы об этом.Указатели?Идеи?Примеры?
Спасибо.