1

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

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() 是否有任何相反的功能来实现这一点?

在此处输入图像描述

4

2 回答 2

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()
于 2013-11-14T03:11:36.513 回答
0

为此,您需要一个 GUI 工具包,或者您需要使用现有的图像显示应用程序。

这个现有的 SO questionImage.show()有讨论使用和其他方法的答案。

要从原始数据到图像,请查看Image.frombuffer()

于 2013-11-13T23:31:01.220 回答