【问题标题】:PIL: cannot identify image filePIL:无法识别图像文件
【发布时间】:2019-07-28 17:43:13
【问题描述】:

我正在尝试使用 PIL 打开图像并获取它的缩略图。 问题是 PIL 对我说:

无法识别图片文件

首先,我从 S3 存储桶下载图像,然后将其保存到 AWS Lambda 的 /tmp/ 目录中。我确定该文件存在,因为我通过os.walk() 函数打印了它。 我也试过直接传递文件的路径。

这是代码sn-p:

bucket.download_file(bucket_key, '/tmp/' + 'michelin.png')
with open('/tmp/michelin.png', 'rb') as f:
    im = Image.open(f)

有什么解决办法吗?提前致谢。

【问题讨论】:

  • 尝试声明一个路径变量,例如path = path = os.path.join('/tmp/'+'michelin.png')只使用im = Image.open(path)
  • 不工作,很遗憾。

标签: python python-imaging-library


【解决方案1】:

您不需要提前打开文件。 PIL.Image.open 将从内部执行此操作。 https://pillow.readthedocs.io/en/stable/reference/Image.html

Image.open('/tmp/michelin.png')

【讨论】:

  • 我提前打开文件,因为我读到有可能在读取操作中无法立即访问刚刚创建的文件。但是,您的解决方案不起作用,我已经尝试过了。
【解决方案2】:

已解决。 我不得不使用

img_file_s3 = s3.meta.client.download_file(bucket_name, bucket_key + 'michelin.png', '/tmp/michelin.png')

而不是

bucket.download_file(bucket_key, '/tmp/' + 'michelin.png')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多