Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢?

2023-12-14

In a Pygame应用程序中,我想渲染 SVG 中描述的无分辨率 GUI 小部件。

我怎样才能实现这个目标?

(我喜欢OCEMP图形用户界面工具包,但它的渲染似乎依赖于位图。)


这是一个完整的例子,结合了其他人的提示。 它应该从当前目录渲染一个名为 test.svg 的文件。它在 Ubuntu 10.10、python-cairo 1.8.8、python-pygame 1.9.1、python-rsvg 2.30.0 上进行了测试。

#!/usr/bin/python

import array
import math

import cairo
import pygame
import rsvg

WIDTH = 512
HEIGHT = 512

data = array.array('c', chr(0) * WIDTH * HEIGHT * 4)
surface = cairo.ImageSurface.create_for_data(
    data, cairo.FORMAT_ARGB32, WIDTH, HEIGHT, WIDTH * 4)

pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
svg = rsvg.Handle(file="test.svg")
ctx = cairo.Context(surface)
svg.render_cairo(ctx)

screen = pygame.display.get_surface()
image = pygame.image.frombuffer(data.tostring(), (WIDTH, HEIGHT),"ARGB")
screen.blit(image, (0, 0)) 
pygame.display.flip() 

clock = pygame.time.Clock()
while True:
    clock.tick(15)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            raise SystemExit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢? 的相关文章

随机推荐

  • android 数据绑定无法正常工作

    我想帮助解决问题 首先 按照我的代码的详细信息 build gradle Project android buildscript repositories jcenter mavenCentral maven url home melti
  • EF 4 Code First - 组合视图和表

    我研究这个问题好几天了 似乎找不到一个让我感觉良好的选择 但是 这里有一个非常相似的问题的链接 将计算字段添加到模型 最后 我也有同样的问题 但希望有更好的解决方案 考虑以下数据库表 CREATE TABLE Contact Contact
  • 函数将十六进制字符串转换为 BitArray C#

    我创建了以下函数 它将按要求执行 将十六进制字符串转换为 BitArray 我不确定该函数的效率 但我现在的主要问题是转换为Int64函数是特定字节序 当将其移植到替代芯片组时 我们将得到不同的结果 或例外 那么有人能想到另一种方法来进行这
  • 如何使用 Wi-Fi 获取距离

    我想使用 wi fi 查找距离并在 iPhone 的地图上绘制标记 那么我能得到什么想法或代码吗 第一次阅读您的问题时 我假设您指的是到接入点的距离 在写了一堆关于这个的内容之后 我意识到你可能有别的意思 如果这就是您的意思 请继续阅读 鉴
  • Facebook如何重写浏览器地址栏中页面的源URL?

    Go to http www facebook com facebook v wall 然后单击信息选项卡 内容将被加载 地址栏现在变成http www facebook com facebook v info但网页没有重新加载 起初我以为
  • 在 Nuxt 中使用最新的 SASS 和 @use

    我想在我的项目中使用 sass 我安装了 node sass 和 sass loader 我可以使用导入 变量和其他 sass 的未来 但我不能使用 use 来使用 mixin 或 function dependencies babel c
  • 如何在python中使用networkx绘制有向图?

    我有一些来自脚本的节点 我想将它们映射到图表上 在下面 我想使用箭头从 A 到 D 并且可能也将边缘着色 红色或其他颜色 这基本上就像所有其他节点都存在时从 A 到 D 的路径一样 您可以将每个节点想象为城市 从 A 到 D 需要方向 带有
  • Laravel - 如何更新整个集合

    我正在尝试用 laravel 制作一个通知系统 我的想法是获取数据并立即更新 is delivered 标志 这是代码 Model public function scopeGetForView query query gt orderBy
  • 关于数组中缺少元素的问题

    我在麻省理工大学的 算法介绍第二版 一书中遇到以下问题 问题如下 数组 A 1 n 包含 0 到 n 之间除 1 之外的所有整数 这很容易 使用辅助数组 B 0 来在 O n 时间内确定丢失的整数 记录 A 中出现了哪些数字 但是 在这个问
  • 如何使用 django 删除图像?

    我想知道如何在表单中添加删除按钮来删除图像 该项目是一个简单的 图片查看器 索引显示存储的所有图像 但我想添加一个 x 图标来删除该特定图像 这是我的代码 views py from django shortcuts import rend
  • jTDS 错误地报告结果集元数据中的数据类型信息(对于 DATE 列,报告 NVARCHAR)

    目前 针对 Microsoft SQL Server 2008 的 jTDS JDBC 驱动程序 1 2 5 似乎错误地将 DATE 列的数据类型报告为 NVARCHAR 对于早期版本的 jTDS 和 SQL Server 2005 200
  • pytorch 中的 reshape 和 view 有什么区别?

    在 numpy 中 我们使用ndarray reshape 用于重塑数组 我注意到在 pytorch 中 人们使用torch view 出于同样的目的 但同时 还有一个torch reshape 现存的 所以我想知道它们之间有什么区别以及何
  • 在 JavaScript 中返回 !1

    我刚刚在 JavaScript 中遇到了一个函数 它有return 1 这实际上意味着什么 你为什么要return 1 or return 0 这是我遇到的函数 function convertStringToBoolean a typeo
  • let 语句中的 case 语句需要什么缩进?

    在 haskell 中工作 发现奇怪的行为 将其精简为简单的框架 这有效 a Bool a case True of True gt True False gt False 但当我尝试时 b IO Bool b do let b case
  • 我备份了一个 git 项目,并得到“致命:不是 Git 存储库”

    我将 Linux 上的 git 文件夹备份到 FAT32 外部驱动器上 稍后将其复制回来 它说 fatal Not a git repository or any of the parent directories git 可能出了什么问题
  • 错误:变量可能尚未初始化

    收到错误 Pay java 81 错误 变量hourlyWage可能不是 已初始化JOptionPane showMessageDialog null hourlyWage 对于以下代码 双hourlyWage已声明 这些陈述位于主要论点内
  • 应用程序处于后台模式时的文本到语音功能?

    我正在研究一个TextToSpeech应用程序 我在一篇文章中写了一段UITextField 然后我按Speak按钮 声音根据写入的文本播放UITextField 但是 当应用程序处于后台模式时 音频将停止播放 如何在后台模式下继续播放声音
  • Angularjs如何上传多部分表单数据和文件?

    我是 angular js 的初学者 但我很好地掌握了基础知识 我想要做的是将文件和一些表单数据作为多部分表单数据上传 我读到这不是 Angular 的功能 但是第 3 方库可以完成此任务 我已经通过 git 克隆了 Angular fil
  • 在循环中为 Tkinter Entry 小部件创建 StringVar 变量

    我有一个小脚本 可以生成随机数量的条目小部件 每个都需要一个 StringVar 以便我可以将文本分配给小部件 由于我无法提前知道会有多少个 因此如何将它们创建为循环的一部分 from Tkinter import import rando
  • Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢?

    In a Pygame应用程序中 我想渲染 SVG 中描述的无分辨率 GUI 小部件 我怎样才能实现这个目标 我喜欢OCEMP图形用户界面工具包 但它的渲染似乎依赖于位图 这是一个完整的例子 结合了其他人的提示 它应该从当前目录渲染一个名为