我想用Python和/或pypng创建一个带有调色板信息的PNG图像文件
输入为:
调色板信息
[[0, 128, 0],
[0, 64, 128],
[0, 128, 128],
[0, 64, 0],
[0, 64, 64],
[128, 128, 0],
...
]
输入图像(numpy.ndarray
)
img = cv2.imread("myimage.png")
print(img)
[[[0, 128, 0],
[0, 128, 0],
[0, 128, 0],
...
]
[[0, 128, 0],
[0, 64, 64],
[0, 64, 0],
...
]
]
并且,输出是:
image = PIL.Image.open("output.png")
image = np.array(image)
print(image)
[[0, 0, 0, 0, ..... 5, 5, 5]
[0, 4, 3, 3, ..... 4, 4, 4]
...
]
输入图像和输出图像在视觉上必须相同
在使用PIL.Image.open
读取输出图像并将其更改为NumPy数组后,应如上所述输出该图像
有没有办法做到这一点
下面是一些将现有RGB图像转换为indexed color image的演示代码。请记住,这个枕头只允许在一些调色板中存储256种不同的颜色,参见^{} 。因此,请确保您的输入图像包含的颜色不超过256种
此外,我将假设调色板以前是已知的,并且现有RGB图像中的所有颜色都完全来自该调色板。否则,您需要添加代码来提取所有颜色,并预先设置适当的调色板
这是现有的RGB图像
myimage.png
:这是中间色
output.png
–您很可能看不到不同的深灰色、近黑色:为了进行比较,这是转换为mode
P
并应用调色板后的索引彩色图像:相关问题 更多 >
编程相关推荐