【问题标题】:PIL / urllib2 - cannot identify image file when passing file using StringIOPIL / urllib2 - 使用StringIO传递文件时无法识别图像文件
【发布时间】:2014-07-07 16:59:55
【问题描述】:

我正在使用 urllib2 从网上下载一张图片。一旦我下载了它,我想使用一个名为 PIL 的图像模块对它做一些事情。我不想将文件保存到磁盘然后重新打开,而是使用StringIO从内存中传递它

from PIL import Image

image_buff = urllib2.urlopen(url)
image = Image.open(StringIO.StringIO(image_buff))

但是当我这样做时,我收到以下错误

IOError: cannot identify image file <StringIO.StringIO instance at 0x101afa2d8

我认为这是因为我没有传递字符串,而是传递 urllib2 对象/实例。有谁知道我如何正确地将字符串传递给 PIL。

【问题讨论】:

    标签: python python-imaging-library urllib2


    【解决方案1】:

    你需要.read()你的urllib2.urlopen对象:

    import StringIO
    from PIL import Image
    
    image_buff = urllib2.urlopen(url).read()
    image = Image.open(StringIO.StringIO(image_buff))
    

    【讨论】:

      【解决方案2】:

      试试这个:

      from PIL import image
      from StringIO import StringIO
      
      f = urllib2.urlopen("http://www.example.com/some.jpg")
      data = f.read()
      
      im = Image.open(StringIO(data))
      

      【讨论】:

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