繁体   English   中英

PIL图像模式我是灰度的吗?

[英]PIL Image mode I is grayscale?

我正在尝试以整数格式而不是(R,G,B)格式指定图像的颜色。 我假设必须根据文档创建“ I”模式下的图像:

图像的模式定义图像中像素的类型和深度。 当前版本支持以下标准模式:

  • 1(1位像素,黑白,每字节存储一个像素)
  • L(8位像素,黑白)
  • P(8位像素,使用调色板映射到任何其他模式)
  • RGB(3x8位像素,真彩色)
  • RGBA(4x8位像素,带透明蒙版的真彩色)
  • CMYK(4x8位像素,彩色分离)
  • YCbCr(3x8位像素,彩色视频格式)
  • I(32位带符号整数像素)
  • F(32位浮点像素)

但是,这似乎是灰度图像。 这是预期的吗? 有没有一种方法可以基于32位整数指定彩色图像? 在我的MWE中,我什至让PIL决定如何将“红色”转换为“ I”格式。


微机

from PIL import Image

ImgRGB=Image.new('RGB', (200,200),"red") # create a new blank image
ImgI=Image.new('I', (200,200),"red") # create a new blank image
ImgRGB.show()
ImgI.show()

有没有一种方法可以基于32位整数指定彩色图像?

是的,为此使用RGB格式,但请使用整数而不是“ red”作为color参数:

from PIL import Image

r, g, b = 255, 240, 227
intcolor = (b << 16 ) | (g << 8 ) | r                                       
print intcolor # 14938367
ImgRGB = Image.new("RGB", (200, 200), intcolor)
ImgRGB.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM