显示图像原始数据的图像

时间:2013-11-13 23:25:56

标签: python image-processing

使用以下代码从图像中读取像素值后:

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()有没有相反的功能来实现这个目标?

enter image description here

2 个答案:

答案 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()