2D NArray (通常の配列よりも効率的であるはずの Ruby クラス) のデータから RMagick イメージを作成する効率的な方法はありますか、それとも 2 つのライブラリのデータ型に互換性がないだけですか?
次のコードは機能しますが、難しい方法で実行します: ネストされた do ループを使用してデータ型をピクセルごとに変換します。私が知る限り、これにより余分な作業が多くなり、NArray の利点はまったくありません。1月の糖蜜よりも遅くなります。
def LineaProcessor.createImage(dataArray, width, height, filename)
image = Magick::Image.new width, height
# scale pixel values from 0..256*255 (the RMagick pixel uses 16 bits)
scaling = 65280/dataArray.max
# set each pixel...I couldn't find any easy way to convert array types
width.times do |x|
height.times do |y|
g = dataArray[x+y*width]*scaling
pixel = Magick::Pixel.new(g, g, g,0)
image.pixel_color x, y, pixel
end
end
image
end