私は迷子で方向性が必要です。ユニファイドキャンバスに多くの画像を効率的にレンダリングする
ImageMagickを使用して、小さな画像(X)を単一のキャンバスにレンダリングしようとしています。
異なるXは、それぞれ20x20,40x40,60x60,80x80または100x100の5つの異なるサイズのいずれかになります。大きな画像の幅は常に600に設定されていますが、必要に応じて高さを調整できます。
任意の瞬間に10個または10,000個の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を繰り返し処理し、複数の行にまたがってスペースを最適化できる有効なアルゴリズムを知っている人はいますか? ここでの目標は、すべての小さな画像で構成された空白のない単一の画像を作成することです。
前述のように、私は皆さんのご意見をお待ちしております。ポインタ?アイデア?例?
ありがとうございました。
返信いただきありがとうございますcarlosdc!私はあなたが役に立たないと言っているメソッドのリファレンス実装を見つけるために朝を過ごしてきました。何か覚えていますか?再度、感謝します。 –
少し私の答えを編集しました。 – carlosdc