首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVGKit不显示potrace生成的图像

SVGKit不显示potrace生成的图像
EN

Stack Overflow用户
提问于 2012-07-13 20:00:52
回答 1查看 884关注 0票数 1

我正在用potrace从bmp图像生成svg图像。生成的图像在Illustrator中显示得很好,但当我尝试在iPad上使用SVGKit显示它时,它加载了一个空白图像。

SVGKit可以处理我用Illustrator创建的svg图像。

为了简单起见,我创建了一个带有简单黑线的bmp图像。

这是Illustrator生成的(SVGKit确实正确地显示了这一点):

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 width="1024px" height="768px" viewBox="0 0 1024 768" enable-background="new 0 0 1024 768" xml:space="preserve">
    <g>
        <g>
            <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M1,0c341,0,682.001,0,1023,0c0,255.995,0,512.006,0,768
        c-341.333,0-682.667,0-1024,0C0,513,0,258,0,3C-0.086,1.581-0.165,0.168,1,0z M160,391c0,5.667,0,11.333,0,17
        c204.999,0,410,0,615,0c0-6.667,0-13.333,0-20c-204.661,0-409.337,0-614,0C159.835,388.168,159.914,389.581,160,391z"/>
            <path fill-rule="evenodd" clip-rule="evenodd" d="M161,388c204.663,0,409.339,0,614,0c0,6.667,0,13.333,0,20
        c-205,0-410.001,0-615,0c0-5.667,0-11.333,0-17C159.914,389.581,159.835,388.168,161,388z"/>
        </g>
    </g>
</svg>

这是potrace生成的结果(SVGKit没有正确显示,但Illustrator显示正确):

代码语言:javascript
复制
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="1024.000000pt" height="768.000000pt" viewBox="0 0 1024.000000 768.000000" preserveAspectRatio="xMidYMid meet">
    <metadata>
    Created by -protrace define- -version define-, written by Peter Selinger 2001-2011
    </metadata>
    <g transform="translate(0.000000,768.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none">
        <path d="M1600 3700 l0 -100 3075 0 3075 0 0 100 0 100 -3075 0 -3075 0 0 -100z"/>
    </g>
</svg>

因此,据我所知,在头文件中有一些不同之处,但即使我在potrace的结果中使用与Illustrator结果完全相同的头文件,SVGKit仍然无法显示它。

既然SVGKit不能显示,那么potrace的结果有什么不同呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 20:31:22

是变形的问题。SVGKit的核心构建不支持转换。

我的实验分支(最终将合并到核心中)对转换有很好的支持-它包括矩阵,翻译...我不确定规模(如果它丢失了,只需要几分钟就可以添加-如果你搜索"matrix“,我想你会很快找到代码。

注意:此分支更改加载SVG的语法。这要简单得多,但您必须调用一个不同的类(SVGKImage)。页底部的自述文件的完整说明:

https://github.com/adamgit/SVGKit/tree/transforms

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11470110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档