微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将pygame图标设置为在线图像

如何解决如何将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

输出

Pygame

,

我不知道你为什么要这么做,但是我为你煮了东西。

它将下载图像的数据,然后从该数据中加载图像。

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 举报,一经查实,本站将立刻删除。