使用以下代码从图像中读取像素值后:
import os, sys
import Image
pngfile = Image.open('input.png')
raw = list (pngfile.getdata())
f = open ('output.data', 'w')
for q in raw:
f.write (str (q) + '\n')
f.close ()
如何在读取以原始形式存储的数据后显示图像? getdata()有没有相反的功能来实现这个目标?
答案 0 :(得分:2)
我不确定你想要通过这样做完成什么,但这是一个将原始图像像素数据保存到文件中,将其读回,然后创建一个Image
对象的工作示例它再次。
重要的是要注意,对于压缩图像文件类型,此转换将扩展保存图像数据所需的内存量,因为它有效地解压缩它。
from PIL import Image
png_image = Image.open('input.png')
saved_mode = png_image.mode
saved_size = png_image.size
# write string containing pixel data to file
with open('output.data', 'wb') as outf:
outf.write(png_image.tostring())
# read that pixel data string back in from the file
with open('output.data', 'rb') as inf:
data = inf.read()
# convert string back into Image and display it
im = Image.fromstring(saved_mode, saved_size, data)
im.show()
答案 1 :(得分:0)
为此,您需要一个GUI工具包,或者您需要使用现有的图像显示应用程序。
This existing SO question有回答讨论使用Image.show()
和其他方法。
要从原始数据转到图像,请查看Image.frombuffer()。