python - 使用 PIL.Image.new() 创建图像时“颜色”的含义是什么?
问题描述
枕头文档说,当给定一个整数时,图像将是单通道图片color
,但是我尝试了几次,不知道为什么图像不像单通道图像那样是灰色的。这是代码:
from PIL import Image
im = Image.new(‘RGB’, [100, 100], 100) # this pic is deep red
im1 = Image.new(‘RGB’, [100, 100], 1000) # this pic is red
im2 = Image.new(‘RGB’, [100, 100], 10000) # this pic is black
那么,PIL 是如何解释整数的呢?这是使用调色板转换的吗?
解决方案
在 doc Image.new 中,我看到了一些不同的东西。
当您使用RGB
then 时,它会创建 3 个通道,您应该使用元组 (R,G,B)color
来设置所有通道中所有像素的值。如果您使用单个整数/浮点数,那么它可能会将其转换为元组 (R,G,B)。
如果您使用L
它会创建 1 个通道,然后您应该使用单个整数/浮点数为所有像素设置颜色
但color
不会改变频道数量。
编辑:将 3x8位转换R,G,B
为 24 位值/从 24 位值转换
value = 1000
R = value%256
value = value//256
G = value%256
value = value//256
B = value%256
print(R,G,B)
print(R+(G*256)+(B*256*256))
结果
232 3 0
1000
推荐阅读
- amazon-web-services - 如何部署具有多个角色的 Terraform 模块?
- angular - 如何始终将焦点设置在 Angular 中的输入上
- reinforced-typings - 如何在 Reinforced.Typings 中将属性标记为可为空(“type | null”)?
- javascript - 单击鼠标滚轮后删除 :focus 及其样式
- c# - 用这个访问 c# 中的单例类;
- swiftui - 如何在 SwiftUI 中屏蔽/剪辑图像的底部?
- python - 如何有效地对子数组进行操作,例如计算行列式,逆,
- html - 是否可以包装一个
- reactjs - 我使用 React 和 PHP 制作的联系表返回 mailSent: false
- mariadb - 我可以在集群上使用主从复制吗?