Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVG中嵌入的SVG质量很差(python、svgwrite)_Python_Svg_Inkscape_Svgwrite - Fatal编程技术网

SVG中嵌入的SVG质量很差(python、svgwrite)

SVG中嵌入的SVG质量很差(python、svgwrite),python,svg,inkscape,svgwrite,Python,Svg,Inkscape,Svgwrite,我正在使用python及其模块svgwrite创建一个svg文件。除了圆圈等(工作正常)之外,我还需要输入另一个svg文件。为此,我使用了: dwg = svgwrite.Drawing('test.svg', size=(size_x, size_y), profile='tiny') dwg.add(dwg.image('image.svg', insert=center_to_be, size=size_to_be)) 除了模糊导入的svg图像之外,它执行了预期的操作。嗯,在inksc

我正在使用python及其模块
svgwrite
创建一个
svg
文件。除了圆圈等(工作正常)之外,我还需要输入另一个
svg
文件。为此,我使用了:

dwg = svgwrite.Drawing('test.svg', size=(size_x, size_y),  profile='tiny')
dwg.add(dwg.image('image.svg', insert=center_to_be, size=size_to_be))
除了模糊导入的svg图像之外,它执行了预期的操作。嗯,在inkscape中打开时会模糊。当我在chrome中打开它时,它似乎是对的,尽管我不能放大这么多

但是,当我使用inkscape导入图像时,它看起来很好

它似乎独立于导入的svg图像,对我尝试的所有图像都适用


我做错什么了吗?还是inkscape的bug考虑到导入的svg非常复杂,我只需要在生成的svg中设置其位置和大小,是否有其他方法如何在python中将svg包含到另一个svg中。我真的需要inkscape的兼容性。

inkscape对SVG图像中嵌入的SVG图像没有很好的支持。它将它们显示为光栅表示,另请参见。

如果Python生成的输出与您预期的一样,您可以肯定地排除Python,这样您就可以减少您的问题。然后,剩下的就是两个程序以不同的质量显示图形,这不是编程问题。我不知道
svgwrite
,但是你检查过结果了吗,它实际上是包含各自的SVG代码还是它的光栅化版本?添加到图像中的SVG文件是否足够小,可以作为源文件发布在这里?(如果不是,你能创建一个简单的SVG图像,看看它是否仍然存在问题吗?)从中,我认为这不会造成太大的问题,除非你的源图像已经像光栅数据一样奇怪,而不是纯SVG…@Ulrich Eckhardt:编程的问题是:如何以不同的方式使其工作。谢谢@Sirko的提问。svgwrite似乎创建了一些非常复杂的多边形,而通过inkscape导入svg似乎是从以前的svg(可能是重新计算的)导入单个命令。那么,有没有一种方法可以在python中简单地做到这一点呢?这在很大程度上取决于SVG文件的性质和内容。尤其是那个孩子。请发布更新:在2018年Libre Graphics Meeting上的hackfest期间,通过链接将一个选项添加到“导入”SVG图像中,就像光栅图像一样(通过GUI,而不是通过在XML编辑器中编辑),现在可以指示在Inkscape中导出/查看链接的SVG文件的分辨率。此选项可能在下一个主要Inkscape版本中可用。