如何在PyGame中使用来自互联网的图像而不将其保存在磁盘上?

时间:2015-02-06 21:19:43

标签: image python-3.x pygame urllib

我试过了:

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

有没有办法做到这一点(没有将文件保存到磁盘上),或者我的代码中出错了?

我还想知道如何知道图像的大小(因为我大多数不能知道图像的大小)?

2 个答案:

答案 0 :(得分:0)

尝试将其置于RGBA格式?毕竟,图像确实包含alpha值。 如果这没有帮助,那就有这个问题。它正在处理套接字,但它可能是相关的。 Pygame not working with sockets

答案 1 :(得分:0)

image.frombuffer用于从已作为图像缓冲区加载到内存中的数据创建图像。你想要的是image.load,它获取一个图像文件并将其转换为图像缓冲区。您应该只能将page传递给它,因为它已经是一个类似文件的对象。