如何将Inkscape 0.92中的http://链接图像更改为嵌入图像?

时间:2017-09-28 14:46:20

标签: image http svg inkscape

我从官方下载页面(https://inkscape.org/en/release/0.92.2/mac-os-x/)使用Inkscape 0.92 for OS X,但我似乎无法加载使用http包含的图像,例如,像这样的SVG

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" 
 xmlns:xlink="http://www.w3.org/1999/xlink" width="950" height="717">
<image width="120" height="120" preserveAspectRatio="none"
 xlink:href="https://media.inkscape.org/media/cms_page_media/328/Inkscape_Logo2.png"/>
</svg>

我想将这些图像更改为嵌入图像,但是当我尝试扩展 - &gt;图像 - &gt;嵌入图像时,我得到了

  

没有找到xlink:href或sodipodi:absref属性,或者它们没有指向现有文件!无法嵌入图片。   抱歉,我们找不到/media/cms_page_media/328/Inkscape_Logo2.png

这对我来说意味着Inkscape无法处理http:// urls(即从互联网上获取图片)

有没有办法启用它?

1 个答案:

答案 0 :(得分:0)

这是一个perl脚本,它应该在带有嵌入式base64编码版本的svg中对链接的jpg文件进行内联替换:

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use MIME::Base64;
our $^I=''; # see perlvar(1)
while(<>){
    s|(xlink:href=)(["'])(https?:[\w/.]+\.jpg)\g2|$1.$2."data:image/jpg;base64,".encode_base64(get($3), "").$2|eg; #embed jpgs
    print;
}