如何解决如何将pygame图标设置为在线图像
因此,假设我有一个存储图片的网址,例如"https://www.image.site/img.png"
我想将pygame图标设置为该图像,而无需在计算机上下载任何内容。
img = pygame.image.load('image')
pygame.display.set_icon(img)
但是如何将其设置为在线图像,只是将set_icon中的参数设置为URL起作用,还是必须做一些更复杂的事情?
解决方法
另一种方式:
- 使用请求库下载图像字节
- 使用 BytesIO 在内存中创建文件流
- 从字节文件流中创建 PIL.Image
- 使用 pygame.image.fromstring 将PIL图像转换为pygame图像
这是代码:
pass
输出
,我不知道你为什么要这么做,但是我为你煮了东西。
它将下载图像的数据,然后从该数据中加载图像。
import requests
import io
import pygame
def surf_from_url(url):
data = io.BytesIO()
response = requests.get(url,stream=True)
if not response.ok:
print(response)
for block in response.iter_content(1024):
if not block:
break
data.write(block)
data.seek(0)
return pygame.image.load(data)
#demo
surf = surf_from_url("https://www.pygame.org/images/logo_lofi.png")
surf2 = surf_from_url("https://yt3.ggpht.com/a/AATXAJxybFq6Y8SFOuyvWqldJPcXbCps-gR_Qp2z4jKt=s100-c-k-c0xffffffff-no-rj-mo")
screen = pygame.display.set_mode([300,300])
pygame.display.set_icon(surf)
screen.fill((255,255,255))
screen.blit(surf,(0,0))
screen.blit(surf2,(20,100))
pygame.display.flip()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。