【发布时间】:2015-02-06 21:19:43
【问题描述】:
我试过了:
import pygame
import urllib.request
page = urllib.request.urlopen("http://s.gjcdn.net/img/logo-small-3.png")
image = page.read()
pygame_image = pygame.image.frombuffer(image, (196, 25), "RGB") #(196, 25) are checked on image original
但是当我运行它时,我得到ValueError: Buffer length does not equal format and resolution size
有什么方法可以做到这一点(不将文件保存到磁盘),或者我的代码有问题吗?
我也想知道怎么知道图片的大小(因为我大多不知道图片的大小)?
【问题讨论】:
-
从技术上讲,您每次运行此代码时都在下载图像。仅仅因为您没有将其保存到磁盘并不会神奇地使其成为“不可下载”。
-
@Marc B 我的意思是不保存到磁盘。
-
尝试使用
image = cStringIO.StringIO(page.read())。 -
@martineau 我使用 Python 3,但我的库中没有
cStringIO,它是第 3 部分库吗(如果它在哪里可以下载?),如果它仅在 Python 2 中我可以用什么代替cStringIO? -
哦,抱歉,您的问题没有被标记为 Python 3。不,
cStringIO不是第三方库,请参阅此answer。
标签: image python-3.x pygame urllib