PIL.Image.verify()破坏了将PIL图像转换为Numpy的能力

时间:2019-10-01 23:11:20

标签: python numpy python-imaging-library

此代码可以正常工作:

this

当我添加import numpy as np import PIL.Image img = PIL.Image.open('test.png') img_np = np.array(img) print(img_np.dtype, img_np.shape) > uint8 (192, 256) 时,verify()成为对象,而不是图像数据:

img_np

是否有办法在import numpy as np import PIL.Image img = PIL.Image.open('test.png') img.verify() img_np = np.array(img) print(img_np.dtype, img_np.shape) > object () 之后将PIL图像转换为numpy?还是我们真的必须再次打开图像?下面的方法确实有效,但是很hacky。

verify()

1 个答案:

答案 0 :(得分:1)

这是documented behaviour

  

Image.verify()

     

验证文件的内容。对于从文件读取的数据,此方法尝试确定文件是否损坏,而无需实际解码图像数据。如果此方法发现任何问题,它将引发适当的异常。 如果使用此方法后需要加载图像,则必须重新打开图像文件。