私はRubyで画像処理スクリプトを持っています。私は配列内のすべてのピクセルを取得し、画像ノイズを作るためにランダムなピクセルを変更するスクリプトを実行します。しかし、私はこのピクセルを取得すると、私はエラーを持っています。ここに私のコードです。Rubyに配列の要素がありません
require 'mini_magick'
first_image = MiniMagick::Image.new("123.png")
a = 0
b = 0
pixels = first_image.get_pixels
loop do
print "\n"
a=a+1
while pixels[a][b] != nil do
print pixels[a][b].to_s + "\n"
b+=1
end
b = 0
break if pixels[a][b] == nil
end
そして、これは私がターミナルで受け付けておりますものです:
Imagenoise.rb:10:in `block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
from Imagenoise.rb:7:in `loop'
from Imagenoise.rb:7:in `<main>'
'first_image.pixels'の出力は何を? –
これは、画像のピクセルの行列を取り出すことができるgem minimagick(https://github.com/minimagick/minimagickによる)のメソッドです。ここでは、行列の各要素は0から3までの3要素の配列です-255、RGBカラーチャンネルの各範囲に1つ。 –
そしてそのループでは、2次元配列ピクセル[height] [wifth]の各要素を出力しています。出力は[24,30,28] [29,36,29] [107]です。 118、102] [175、189、166] ' –