Naf*_*Kay 9 python python-imaging-library
我在PIL中打开了一个图像,如下所示:
from PIL import Image
i = Image.open("image.jpg")
Run Code Online (Sandbox Code Playgroud)
我需要访问此文件的原始内容.如何获得整个图片数据,就好像我会做的那样open(...).read()?
小智 18
你可以看到这个答案python Image PIL为二进制Hex
需要再次保存img对象; 将它写入另一个BytesIO对象:
Run Code Online (Sandbox Code Playgroud)output = io.BytesIO() img.save(output, format='JPEG')然后使用.getvalue()方法获取写入的数据:
Run Code Online (Sandbox Code Playgroud)hex_data = output.getvalue()
如果你想获得图像的实际字节,只需使用i.tobytes().这是Pillow,我不确定它是否在原始PIL模块中,而是来自应该是的文档.
在 PIL 中:
Image.open(path).convert('1')
Run Code Online (Sandbox Code Playgroud)
正如文档中提到的
1模式用于(1位像素,黑白,每个字节存储一个像素)
PIL 使用惰性打开机制,仅在需要时才读取文件内容。为此,它可能将文件引用保留在某些内部(私有)属性中。
即使这个属性是可访问的,它肯定不会作为官方 PIL API 的一部分公开 - 并且它肯定不应该以这种方式使用。
读取数据后,文件内容将被解码,并作为像素值保存在内存中(这通常是处理图像时所需的)。该库当然不会将未解码的文件数据保留在内存中的数据结构中,因为它毫无意义。
如果您想要原始文件内容,您可能会使用其他模块处理图像,或存储图像,或以与实际图像内容无关的形式迭代数据 - 难道您不能直接使用以下命令打开文件吗定期“开放”?
| 归档时间: |
|
| 查看次数: |
17170 次 |
| 最近记录: |