我使用编译为16位的ImageMagick进行Rmagick。
但是,我可以通过这样做来读取文件:
file = Magick::Image.read(my_file){self.depth = 8}.first
在检查该文件时,我发现它是
PNG 1400x768 1400x768+0+0 DirectClass 8-bit 333kb
但是,当访问任何像素时,值大于0-255。
为什么?我错过了什么?
我这样访问:
red = image.pixel_color(x,y).red
我不明白为什么这个值会从0到2 ^ 16,当我特意打开8位深度的图像时。
答案 0 :(得分:0)
您使用的ImageMagick版本是Q16(16位)。这意味着ImageMagick将始终在内部使用无符号短路来存储像素的通道。如果所有图像都是8位,您可以切换到ImageMagick的Q8版本。有关ImageMagick架构的更多信息,请访问:http://www.imagemagick.org/script/architecture.php