【问题标题】:How can I change http:// linked images in Inkscape 0.92 to embedded ones?如何将 Inkscape 0.92 中的 http:// 链接图像更改为嵌入式图像?
【发布时间】:2017-09-28 14:46:19
【问题描述】:

我正在使用来自官方下载页面 (https://inkscape.org/en/release/0.92.2/mac-os-x/) 的 OS X 的 Inkscape 0.92,但我似乎无法让它加载使用 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>

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

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

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

有什么办法可以启用吗?

【问题讨论】:

标签: image http svg inkscape


【解决方案1】:

这是一个 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;
}

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 2017-12-07
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    相关资源
    最近更新 更多