Ruby on rails 在统一画布上高效地渲染多个图像
我迷路了,需要指引方向 我们正在尝试使用imagemagick将一组小图像X渲染到一个统一的画布上 不同的X可以是五种不同尺寸中的一种:20x20、40x40、60x60、80x80或100x100。大图像的宽度始终设置为600,但可以根据需要调整高度 在任何给定时刻,我们都可以使用多达10个或10000个X 目前,我们正在进行的概念验证工作大致如下:Ruby on rails 在统一画布上高效地渲染多个图像,ruby-on-rails,ruby,image-processing,imagemagick,rmagick,Ruby On Rails,Ruby,Image Processing,Imagemagick,Rmagick,我迷路了,需要指引方向 我们正在尝试使用imagemagick将一组小图像X渲染到一个统一的画布上 不同的X可以是五种不同尺寸中的一种:20x20、40x40、60x60、80x80或100x100。大图像的宽度始终设置为600,但可以根据需要调整高度 在任何给定时刻,我们都可以使用多达10个或10000个X 目前,我们正在进行的概念验证工作大致如下: images.each do |image| image = Magick::Image.read("#{RAILS_ROOT}/
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,并将它们并排放置,跨越多条线,同时优化空间?这里的目标是创建一个没有空白的单一图像,由所有小图像构成
如前所述,我希望你们对此有任何反馈。指针?思想?例子
谢谢。现在的图像似乎是噪音。你想解决一个问题。瓷砖有一些固定的尺寸,你想把它们放在一个固定宽度和最小高度的表面上。这可以通过DFS、BFS、A*等进行全局优化。您还可以查看一些局部方法,如模拟退火或爬山,这取决于您是否需要全局优化或只是一个好的、合理的解决方案。您可以在中找到这些方法的实现
一旦您解决了平铺问题,您就可以使用与您正在显示的代码类似的代码来覆盖图像。谢谢您的回复!我花了一上午的时间试图找到你提到的方法的参考实现,但没有结果。你有什么想法吗?再次感谢。