我有一个从 USB 远地点相机读取的字符串,它是一个 12 位灰度图像,每个 12 位占用 16 位字的最低 12 位。我想通过忽略最低 4 位从这个字符串创建一个 8 位 png。
我可以使用 PIL 将其转换为 16 位图像,其中最高 4 位始终为零
import Image
#imageStr is the image string
#imageSize is the image size
img=Image.fromstring("I", imageSize, imageStr, "raw", "I;16", 0,1)
img.save("MyImage.png", "PNG")
无论如何,我可以做类似的事情来创建一个 8 位图像,而无需完全解开字符串进行算术运算并创建一个新字符串吗?
编辑:关于转换图像的 Wumps 评论给了我一个想法,我做到了
img = img.point(lambda i: i * 16, "L") #shifts by 4 bits and converts to 8-bit image.
谢谢乌普