【问题标题】:How to show a subsection or "slice" of an SVG graphic?如何显示 SVG 图形的一个小节或“切片”?
【发布时间】:2010-11-09 01:23:45
【问题描述】:

有什么方法可以对 SVG 进行切片。我的意思是任何已经可用的 lib 。我需要用 Java 实现这个切片组件。

我的意思是,我有单个 SVG 文件和基于图形选择的标尺/刻度,我想将单个 SVG 分割成不同的 SVG 文件。

希望我清楚

【问题讨论】:

  • 定义“切片” 您想生成图形上独立的部分还是存储逻辑上独立的文件?还是……?

标签: java image svg vector-graphics slice


【解决方案1】:

是的,尽管您会认为这是机密信息 - 或者根本不可能 - 基于找到这个基本事实的难度......

显然all you need to do is reference the viewBox from a URI "fragment".。我已经确认,它确实有效。举个例子……这个故事的教训是……image.svg#svgView(viewBox(100,100,100,100))

image.svg 定义为<svg .... viewBox="0,0,400,400" width="400" height="400">

http://example.com/image.svg

http://example.com/image.svg#svgView(viewBox(100,100,100,100))

【讨论】:

  • 这太棒了。这基本上意味着可以将单个 SVG 文件用作精灵。我很好奇浏览器对此的支持。
【解决方案2】:

如果您在 Java 中使用 SVG,Batik SVG Toolkit 将提供很多功能(不过我承认我不知道您所说的切片是什么意思)

【讨论】:

  • 我试过 Batik ,但它确实支持 SVG 切片操作。
【解决方案3】:

您所要做的就是编辑<svg> 标签。编辑widthheight,将主svg元素上的viewBox属性设置为你想要的矩形,渲染,重复。

每个 svg 将包含原始数据的所有数据,但只会显示 viewBox 内的绘图部分。见http://dingoskidneys.com/~dholth/svg/

viewbox = "x y width height"

【讨论】:

  • 我需要,切片一个更大的 SVG 并将它们转换成多个 SVGS。例如:我有一张大图,我根据我的选择将整个矩形分成 9 个矩形,输出应该是这些新的 9 个 SVG 文件,由这些矩形内的内容组成。我希望我清楚吗?
  • 有道理。只要您不介意切片在磁盘上的大小相同,viewBox 就是您所需要的。
  • 如果你必须吃掉整个披萨 8 次,这不是一片。
【解决方案4】:

如果您对 svg 进行切片的目标是创建“热链接”或图像映射 .. 这就是如何做到的!

只需在 Illustrator 中对 svg 进行切片,然后在保存(“另存为”)该 svg 时,一定要找到包含切片引用的代码(底部的“SVG 代码”),例如:

<rect id="_x3C_Slice_x3E__1_" x="88" y="22.5" class="yj4" width="227" height="88"/>

通过链接标签包围可以链接:

<a href="#"><rect id="_x3C_Slice_x3E__1_" x="88" y="22.5" class="yj4" width="227" height="88"/></a>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多