标签: rsvg

rsvg-convert的文本字体问题

我们使用rsvg-convert进行SVG到PDF的转换,它就像魅力一样,直到我们遇到文本.

这是一个例子 -

命令:rsvg-convert -w 842 -f pdf -o testing.pdf testing.svg

这是SVG:http://pdf-balancer-693758372.us-east-1.elb.amazonaws.com/development/assets/img/uploads/testing.svg

这是PDF:http://pdf-balancer-693758372.us-east-1.elb.amazonaws.com/development/assets/img/uploads/testing.pdf

转换后的PDF中存在明显的问题:

  1. 下划线丢失了

  2. 某些文本定位不正确(比较SVG和PDF中非粗体文本的最后一个字符正下方的粗体文本中的相应字符)

  3. 这个电子邮件中的示例很好,但对于某些字体,粗体标记会丢失

.

救命!

svg rsvg librsvg imagemagick-convert

11
推荐指数
0
解决办法
1657
查看次数

将.SVG图像放入tkinter Frame

我一直在尝试将来自https://betacssjs.chesscomfiles.com/bundles/web/favicons/safari-pinned-tab.f387b3f2.svg的图像放入Tkinter框架。我从这里的帖子中发现,在rsvg和cairo的帮助下,这是可能的。

我使用python 3.6在Windows 10,我RSVG从这里和开罗这里,然后提取该文件夹复制到“C:\用户\ site_packages”文件夹。他们进口罚款,但我不知道如何使用它们。我尝试使用代码:

import tkinter as tk
main=tk.Tk()
frame=tk.Frame(main)
def svgPhotoImage(self,file_path_name):
        from PIL import Image,ImageTk
        import rsvg,cairo 
        svg = rsvg.Handle(file=file_path_name)
        width, height = svg.get_dimension_data()[:2]
            surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(width), int(height))
            context = cairo.Context(surface)
            #context.set_antialias(cairo.ANTIALIAS_SUBPIXEL)
            svg.render_cairo(context)
            tk_image=ImageTk.PhotoImage('RGBA')
            image=Image.frombuffer('RGBA',(width,height),surface.get_data(),'raw','BGRA',0,1)
            tk_image.paste(image)
            return(tk_image)
    tk_image=self.svgPhotoImage(filename)
    frame.configure(image=tk_image)
Run Code Online (Sandbox Code Playgroud)

#rsvg.py
import os
try:
    import rsvg
    WINDOWS=False
except ImportError:
    print"Warning, could not import 'rsvg'"
    if os.name == 'nt':
        print "Detected windows, creating rsvg."
        #some workarounds for windows

        from ctypes …
Run Code Online (Sandbox Code Playgroud)

python tkinter cairo rsvg python-3.x

9
推荐指数
2
解决办法
773
查看次数

ImageMagick将SVG转换为PNG,无法启用RSVG

我正在使用ImageMagick的convert实用程序将SVG文件转换为PNG图像.起初,我在OSX(brew install imagemagick)上使用IM的vanilla安装来转换SVG:

$ convert file.svg file.png
Run Code Online (Sandbox Code Playgroud)

除了该文件中的某些图像对象是偏移的(实际链接到图像)之外,这个工作正常.然后我读了一个相关的问题,建议使用rsvg支持编译ImageMagick (自制软件用它brew install imagemagick --use-rsvg).

现在,当我尝试执行转换时,不会渲染任何图像.我尝试使用此SVG文件,生成的PNG为空.但是,如果SVG上存在任何文本,则会将其呈现在正确的位置.任何想法如何进行?谢谢.

svg png imagemagick rsvg

8
推荐指数
2
解决办法
1万
查看次数

如何将大型SVG文件转换为平铺PNG?

我有一个大的SVG文件(大约60 MB,10000x10000像素但有可能变大),我想要创建许多平铺的256x256 PNG图像(在这个例子中会有1600个图像) ;圆形(10000/256)^ 2).

有没有人知道如何在Web服务器上执行此操作(运行PHP等)?我想过rsvg,但它似乎没有任何功能来修改边界框(我宁愿避免为每个部分手动操作).ImageMagick也许可以做到,但我没有太多运气让它运转起来.使用rsvg创建一个大的PNG,然后使用专用于拼贴非常大的图像的工具可能会有效,但我没有运气找到这样的东西!速度并不是一个真正的问题,虽然它是可取的,所以如果最坏的情况发生,我可能会考虑修改SVG的每个部分的边界框.不过,我可以看到这一代人永远在走!

有谁知道这样做的任何方法?

编辑2016-03-02:

我最近再次回到需要这个问题的答案,并且Inkscape似乎是唯一能够以给定大小呈现特定区域的SVG的工具(svgexport几乎满足这些要求,但它不允许您更改宽高比) .

我的目标是将SVG平铺到256x256磁贴中,现在我已经成功制作了一个脚本,可以通过重复渲染inkscape大约16,000 x 16,000并平铺生成的图像来平铺任意大的SVG .我已成功渲染尺寸超过500,000 x 500,000像素的SVG - 内存使用没有问题(这需要很长时间!)

php linux svg imagemagick rsvg

6
推荐指数
1
解决办法
4175
查看次数

在OSX上哪里可以找到/下载用于python的lib rsvg

我正在寻找使用python库rsvg将SVG图形转换为其他格式(主要是PDF),并且似乎无法在任何地方找到在Mac OSX上下载和安装的python-librsvg源代码.有帮助吗?

python macos rsvg librsvg

6
推荐指数
1
解决办法
2103
查看次数

在Ubuntu上使用Python 3.2的rsvg

我试图在Python 3.2中使用rsvg,但我一直收到导入错误.我已经安装了所有librsvg软件包和cairo.我无法在网上找到任何其他安装工具来实现它.我听说自2005年以来rsvg模块还没有更新,所以它只是与Python 3.2不兼容,还是我还可以尝试安装它?或者,如果rsvg不起作用,是否有人对通过Python显示SVG文件的简单方法有任何建议(基本上只显示图像)?

编辑:我得到的错误是:'ImportError:没有名为rsvg的模块'

python2中不显示此错误

提前致谢

python svg cairo rsvg python-3.x

6
推荐指数
1
解决办法
6273
查看次数

使用PHP将SVG转换为具有多个图像层的PNG

我用这段代码转换svgpng图像

<?php 
exec('/usr/bin/rsvg-convert -w 1000 -h 1000 tshirt.svg -o tshirt.png');
?>
Run Code Online (Sandbox Code Playgroud)

这适用于单个svg图像.

实际上我有一个svg包含多层图像的图像,如:

第1层 - :这是透明的背景T恤图像

第二层 - :这是另一个包含颜色的T恤图像

第3层 - :这是应该放在T恤上的小贴纸图片

我的svg代码是 - :

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg crossOrigin="anonymous" width="1000px" height="1000px" version="1.1"   xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">

    <g class="canvas_background">
        <rect class="canvas_variant_color" width="998" height="998" x="0" y="0" style="" fill="#008080"/>
        <rect real_size="16,22" height="547" class="canvas_border" width="343" y="160" x="335" fill="#008080" />        
    </g>

    <g class="canvas_objects" style="" mask="url('#Sibnip5tjg')">
        <g style="display: block;" transform="matrix(1,0,0,1,-146.5,-236.3909)">
            <image …
Run Code Online (Sandbox Code Playgroud)

php svg png inkscape rsvg

6
推荐指数
1
解决办法
871
查看次数

Python SVG转换器创建空文件

我下面有一些代码,应该将SVG图像转换为PNG。它可以正常运行,但是会创建一个空白PNG文件,而不是与原始SVG具有相同图像的PNG文件。我确实发现这不是cairo的错误,而是与rsvg有关的更多错误,我在这里得到

import cairo
import rsvg

img = cairo.ImageSurface(cairo.FORMAT_ARGB32, 640,480)
ctx = cairo.Context(img)
handle= rsvghandler.Handle('example.svg')
handle.render_cairo(ctx)
img.write_to_png("svg.png")
Run Code Online (Sandbox Code Playgroud)

我正在Windows 10上使用Python 3.6。

我无法终生弄清楚为什么它无法显示正确的图片。任何帮助将不胜感激。

python cairo rsvg python-3.x python-3.6

6
推荐指数
1
解决办法
176
查看次数

你能在 python 程序中显示图像吗(不使用 pygame)?

我想做类似的事情:

    import image
    image.display_image('http://upload.wikimedia.org/wikipedia/commons/8/84/Example.svg')
Run Code Online (Sandbox Code Playgroud)

它会以图像的形式出现。

PS 我想要 PNG 或 JPEG,而不是 GIF。

python svg image tkinter rsvg

5
推荐指数
1
解决办法
5381
查看次数

Ruby,RSVG和PNG流

我正在尝试在从SVG到PNG的rails应用程序中进行图像转换.由于Heroku此时无法/想要升级IM,因此ImageMagick无法解决这个问题.我正在测试一些在开发中使用RSVG2/Cairo但遇到障碍的想法.

我可以轻松地将SVG转换并保存为PNG,如下所示:

#svg_test.rb
require 'debugger'
require 'rubygems'
require 'rsvg2'

SRC = 'test.svg'
DST = 'test.png'

svg = RSVG::Handle.new_from_file(SRC)
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 800, 800)
context = Cairo::Context.new(surface)
context.render_rsvg_handle(svg)
surface.write_to_png(DST)
Run Code Online (Sandbox Code Playgroud)

但这只能让我写出PNG文件.在应用程序中,我需要能够动态生成这些,然后将它们作为数据发送到客户端浏览器.我无法弄清楚如何做到这一点,或者即使它受到支持.我知道我至少可以调用surface.data来获取原始数据,但我对图像格式知之甚少,不知道如何将其作为PNG.

谢谢

png ruby-on-rails rsvg

4
推荐指数
1
解决办法
2380
查看次数

如何将 SVG 图像“路径”转换为单独的 PNG 图像?

我有一个带有 67 个单独路径的 SVG 图像。

是否有任何库/教程可以为每个路径创建单独的光栅图像,例如 PNG,并且可能根据路径 ID 命名它们?

svg imagemagick image-processing rsvg librsvg

3
推荐指数
1
解决办法
5829
查看次数