SVG图像 - 缩放和边框

0 投票
1 回答
1727 浏览
提问于 2025-04-16 05:55

我有一个小的svg文件,放在这里:http://dl.dropbox.com/u/7393/hmap.svg,我想把它改成这个样子:http://dl.dropbox.com/u/7393/final.png

我从文档中了解到,只需要改几个标签就能轻松实现这个变化。但是我尝试了很多修改,还是无法做到:1) 放大,2) 裁剪,3) 把边框变成白色。

这里有没有人对svg(xml)图像文件格式比较熟悉,能给我一些建议呢?

谢谢。

1 个回答

1

要放大图像,你需要调整视口设置。这个文件在最上面的svg标签里使用了一个视口。你现在用的视口是整个图像的 viewBox="0 -500 2752.766 2537.631",而你把它放在一个高 height="476.7276" width="634.26801" 像素的框里。所以一条宽1个单位的线大约只有1/5个像素宽。

如果你想放大,比如说欧洲,可以把它改成 viewBox="1000 -500 1000 1000"。这基本上是说从左边开始1000个单位,从顶部开始-500个单位,然后向右裁剪1000个单位,向下裁剪1000个单位。

白线的宽度是 stroke-width:0.99986893; 单位。要让它变成整整一个像素,你需要更近地放大。可以用 viewBox="1200 -5 450 450"

你在文档的顶部使用了样式和内联样式,内联样式会覆盖其他样式。

<g class="land fr" id="fr" 
 transform="matrix(1.229834,0,0,1.1888568,-278.10861,-149.0924)" 
 style="fill-opacity:1;stroke:#ffffff;stroke-width:10;
       stroke-miterlimit:3.97446823;stroke-dasharray:none;stroke-opacity:1;
       fill:#00ff00">

在640 x 480的屏幕上显示完整大小的图像时,线条宽度大约设置为10应该可以正常工作,但这样做需要在每个元素上都设置。

<path d="M 2218.0062,810.62352 C 2217.5173,811.14292 2217.698,811.38357
         2218.5472,811.34547 C 2218.3665,811.10481 2218.1868,810.86417 
         2218.0062,810.62352" 
 id="path2404" 
 style="fill-opacity:1;stroke:#ffffff;stroke-width:0.99986994;
       stroke-miterlimit:3.97446823;stroke-dasharray:none;stroke-opacity:1;
       fill:#6BAED6">

或者需要从元素中移除样式,以使用父级样式。

<path d="M 2218.0062,810.62352 C 2217.5173,811.14292 2217.698,811.38357 
         2218.5472,811.34547 C 2218.3665,811.10481 2218.1868,810.86417 
         2218.0062,810.62352" id="path2404">

撰写回答