RMAGICK 像素颜色值



我正在使用rmagick来处理获取位图的每个像素。我需要获取深度为 8(256 种颜色)的颜色值,但不幸的是,当我使用像素时。[彩色](例如红色像素),我正在深入 16 个。即使在我使用 image.quantize(256) 之后,它也在发生。

这是代码:

require 'RMagick'
include Magick
image = ImageList.new("image.bmp")
image3 = image.quantize(number_colors = 256)
puts image3.number_colors
image2 = Image.new(image.columns, image.rows)
(0..image.columns).each do |x|
    (0..image.rows).each do |y|
        pixel = image3.pixel_color(x, y)
    print pixel.red
    print ", "
    print pixel.green
    print ", "
    print pixel.blue
    print "n"
    image2.pixel_color(x, y, pixel)
    end
end

我应该怎么才能获得 0..255 的值?

它们存储在 16 位的"量子深度"中。您可以重建库来更改此设置。或者,您可以简单地将每个值除以 257。

有一个名为MagickExportImagePixel的函数,它可以为您提供所需的8位像素数据。每当您对图像执行转换等时,它都会转换回 16 位像素。

最新更新