Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在统一画布上高效地渲染多个图像_Ruby On Rails_Ruby_Image Processing_Imagemagick_Rmagick - Fatal编程技术网

Ruby on rails 在统一画布上高效地渲染多个图像

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}/

我迷路了,需要指引方向

我们正在尝试使用imagemagick将一组小图像X渲染到一个统一的画布上

不同的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,并将它们并排放置,跨越多条线,同时优化空间?这里的目标是创建一个没有空白的单一图像,由所有小图像构成

如前所述,我希望你们对此有任何反馈。指针?思想?例子


谢谢。

现在的图像似乎是噪音。你想解决一个问题。瓷砖有一些固定的尺寸,你想把它们放在一个固定宽度和最小高度的表面上。这可以通过DFS、BFS、A*等进行全局优化。您还可以查看一些局部方法,如模拟退火或爬山,这取决于您是否需要全局优化或只是一个好的、合理的解决方案。您可以在中找到这些方法的实现


一旦您解决了平铺问题,您就可以使用与您正在显示的代码类似的代码来覆盖图像。

谢谢您的回复!我花了一上午的时间试图找到你提到的方法的参考实现,但没有结果。你有什么想法吗?再次感谢。