【问题标题】:raise UnidentifiedImageError( PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x0000018CA596D350>引发 UnidentifiedImageError(PIL.UnidentifiedImageError: 无法识别图像文件 <_io.BytesIO 对象位于 0x0000018CA596D350>
【发布时间】:2021-12-28 18:02:41
【问题描述】:

我收到错误“引发 UnidentifiedImageError( PIL.UnidentifiedImageError: cannot identify image file <_io.bytesio object at>' 在以下代码中:

import io
from PIL import Image 

file = io.BytesIO(str.encode('D:/Downloads/imagens/0b4d4db99a7b8ecba24909d277556de8.png'))

img1=Image.open(file)
img1.show()

还有很多其他类似的问题,但似乎都不是同一个问题。如果我去掉'str.encode',错误会变成“TypeError:需要一个类似字节的对象,而不是'str'”

【问题讨论】:

    标签: python image io encode bytesio


    【解决方案1】:

    您是要打开那个文件吗?

    img1 = Image.open('D:/Downloads/imagens/0b4d4db99a7b8ecba24909d277556de8.png')
    
    # or
    with open('D:/Downloads/imagens/0b4d4db99a7b8ecba24909d277556de8.png', 'rb') as fh:
        img1 = Image.open(fh)
    

    Docs供参考:

    这是一个惰性操作;此函数识别文件,但文件保持打开状态,并且在您尝试处理数据(或调用 load() 方法)之前不会从文件中读取实际图像数据。见新()。请参阅 Pillow 中的文件处理。

    参数

    fp – 文件名(字符串)、pathlib.Path 对象或文件对象。文件对象必须实现file.read、file.seek和file.tell方法,并以二进制方式打开。

    【讨论】:

    • 如果我需要用 MySQL 镜像做同样的事情,我怎样才能避免同样的错误? (您的解决方案有效)
    • 一个 MySQL 镜像?像一个 BLOB?那将是您使用BytesIO 对象的时候。您将 blob 输入 bytesIO 并将其提供给 Image.open
    • 这就是我不明白的,它不是一个BLOB,它是“类型:IMG”,并且给我的问题带来了同样的问题
    • 我认为您需要更新您的问题,因为我不太清楚您的意思
    • 没关系,请您帮忙
    猜你喜欢
    • 2021-08-02
    • 2022-01-03
    • 2020-05-26
    • 1970-01-01
    • 2021-05-19
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多