4

画像のピクセルの色を取得するためにChunkyPNGを使用しています。画像に背景色がまったくなく、ブラウザーにレンダリングされると、背景色は白になります (通常、ブラウザーの構成によって異なります)。

私の問題は、ChunkyPNGでピクセルを分析すると、色がまったくないピクセルrgb(0,0,0)の値は であり、黒のピクセルの値は ですrgb(0,0,0)。それらを区別する方法はありますか?不透明度をチェックしていますか...何が欠けていますか?

これが私のコードです:

chunky_image = ChunkyPNG::Image.from_file("test.png")

width = chunky_image.dimension.width
height = chunky_image.dimension.height
(0..width - 1).each do |x|
  (0..height- 1).each do |y|
    red = ChunkyPNG::Color.r(chunky_image[x,y])
    green = ChunkyPNG::Color.g(chunky_image[x,y])
    blue = ChunkyPNG::Color.b(chunky_image[x,y])
    p "red: " + red.to_s
    p "green: " + green.to_s
    p "ble: " + blue.to_s
  end
end
4

2 に答える 2

5

rgb 値の代わりに rgba 値が必要です。

r,g,b が 0 で a が 255 の場合、黒一色になります。

r,g,b が 0 で、a が > 0 で < 255 の場合、まだ黒ですが、多かれ少なかれ透明です

aが0の場合、r、g、bに関係なく、完全に透明です(言葉に色はありません)

だからあなたが見逃しているのは Color.a(pixel) 値です。あなたの写真が COLOR_TRUECOLOR_ALPHA であることを願っています

于 2013-11-19T20:07:59.683 に答える