Python - 如何使用Open-cv或PIL将24位PNG图像转换为32位
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - 如何使用Open-cv或PIL将24位PNG图像转换为32位相关的知识,希望对你有一定的参考价值。
我想将24位PNG图像转换为32位,以便它可以显示在LED矩阵上。这是我使用的代码,但它将24位转换为48位
import cv2
import numpy as np
i = cv2.imread("bbb.png")
img = np.array(i, dtype = np.uint16)
img *= 256
cv2.imwrite('test.png', img)
答案
我认为你已经将颜色位深度与输入图像/数组的大小混淆了。从评论中发布的链接中,没有提到32作为深度。该教程链接中的脚本使用具有3通道,8位颜色的图像(红色,绿色和蓝色代码值,每个值代表0-255之间的数字)。输入图像必须与数组具有相同的高度,但可以是不同的宽度以允许滚动。
有关位深度的更多信息:https://en.wikipedia.org/wiki/Color_depth
另一答案
我查看了你链接的代码中的christmas.png
图像,它看起来像是带有调色板和8位alpha通道的624x8像素图像。
假设样本图像有效,您可以通过拍摄PNG图像并添加完全不透明的Alpha通道来制作具有相同特征的图像,如下所示:
#!/usr/local/bin/python3
from PIL import Image
# Load the image and convert to 32-bit RGBA
im = Image.open("image.png").convert('RGBA')
# Save result
im.save("result.png")
我生成了一个渐变图像并应用了这个处理并得到了这个,所以也许你可以尝试:
以上是关于Python - 如何使用Open-cv或PIL将24位PNG图像转换为32位的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PIL(python 成像)创建透明 gif(或 png)
如何在Python 3中将QImage(QPixmap)转换为PIL图像?