python - SVG 质量极差 [kivy]
问题描述
我正在尝试为我的应用程序制作 svg 小部件。我使用名为 Figma 的应用程序创建了 SVG。问题是它们的质量极差。为什么会这样,有解决方案吗?
左 - Figma 素描 | 右 - Kivy 窗口
Python代码
from kivy.graphics.svg import Svg
from kivy.uix.scatter import Scatter
class SvgWidget(Scatter):
def __init__(self, filename, **kwargs):
super(SvgWidget, self).__init__(**kwargs)
with self.canvas:
svg = Svg(filename)
self.size = svg.width, svg.height
class gui(Widget): #Main Widget
pass
def __init__(self, **kwargs):
super().__init__(**kwargs)
#PNG Widgets
self.add_widget(body())
self.add_widget(headerBox())
self.add_widget(footerBox())
#SVG Widgets
self.add_widget(SvgWidget("./assets/VERSION 1.0.svg", size_hint=(65, 16), pos=(182, 3))) #Version text
self.add_widget(SvgWidget("./assets/Application Name.svg", size_hint=(225, 26), pos=(8, 228-20))) #Header Text
self.add_widget(SvgWidget("./assets/LICENSE ACTIVATED.svg", size_hint=(225, 26), pos=(8, 228-32))) #License
class MainApp(App):
def build(self):
Window.borderless = True
self.gui = gui()
return self.gui
if __name__ == '__main__':
MainApp().run()
SVG - https://mega.nz/file/E3oUBCwA#p_Ap2qIx4hc3fT0UN19T0P3TiDDry6J_Ss-zOkKzsSU
解决方案
你可以试试 Nim 的 fidget gui 库。它有一个导出插件,直接在 Figma 中。但它非常初级。Fidget2 正在开发中。你也可以试试 nimpy,它是一个 nim 到 py 的桥。使用绘制出色 svg 的 Nim 侧 pixie 创建图像,并将其作为图像读取(或者可以作为 GL 上下文执行?)在 python 端(python 端导入 Nim 创建的共享对象 .so 二进制库)。非常容易的互操作性,并且 Nim 是一种编写代码的乐趣。但是它将功能部分移到了 Nim,并且您需要将绘图数据传回,而我还没有尝试过。
推荐阅读
- python - 如何使sympi排列公式以使分子中的最高阶系数为1
- node.js - Angular Mat-Form 导致网页在没有错误代码的情况下崩溃
- javascript - Javascript - isNaN and parseInt
- powershell - 如何在 powershell 脚本中创建调度程序任务路径的集合
- google-bigquery - 如何在 BigQuery 中将 8 字节双精度数(小端序)解析为 float64?
- javascript - 我将如何在按下加号按钮时显示的 html 网站上创建可编辑的“块”?
- php - 使用原始 php 变量设置默认选项(无 javascript 或其他库)
- python - Python - 重新格式化来自 Binance 的 JSON API 响应
- java - 如果您使用的是@EnableWebMvc 注解,为什么@RequestBody 调用的Dto 必须使用@NoArgsConstructor 进行注解?
- android - 仍然无法将订阅的 android 应用程序转移到另一个帐户?