我正在尝试创建图像与10-bit/color(位深度)使用图像模块。我编写了以下代码片段,但结果是8位/color:
from PIL import Image
im = Image.new("RGBA", (256, 256))
pix = im.load()
for y in range(256):
for x in range(256):
pix[x, y] = (1023, 1023, 1023, 255)
im.show()
im.save("10bit.jpg")
当image成功写入新文件时,它仍然被编码为8位通道:
$ exiftool 10bit.png
Bit Depth : 8
$ file 10bit.png
10bit.png: PNG image data, 256 x 256, 8-bit/color RGBA, non-interlaced
我的目标是写深颜色(40位)图像:
深颜色由十亿或更多的颜色组成。[15] 230是1,073,741,824。通常是红、绿、蓝各10位(10bpc)。如果添加相同大小的alpha通道,则每个像素占用40位。
我在这里错过了什么?有没有其他方法可以创建10位的alpha通道图像?(opencv等)
PIL/Pillow
不能这样做。这里描述了可用的模式,没有超过每像素8位的RGB模式。
我建议您使用Numpy
与np.uint16
的HxWx3
通道来创建您的图像并使用scikit-image
或OpenCV处理它们或者魔杖,像这样:
import numpy as np
# Crete empire black image
image = np.zeros((H,W,3), np.uint16)
你没有明确地说你想用什么格式写结果。如果你澄清这一点,也许我(或其他人)可以建议一个Python库。