先把问题解决
本例圆心(50,50)、半径50、描边宽12,外边界为−6到106。用viewBox="-6 -6 112 112"容纳几何描边;若需要抗锯齿外的透明余量,可进一步用"-7 -7 114 114",并重新确认输出尺寸。
为什么路径在画布内,轮廓仍不完整?
把圆想成沿圆周铺开一条有宽度的带子:路径本身从0到100,描边在路径两侧各伸出6。四个方向都可能超出原来的0到100范围。这里的6来自12÷2,不是图片压缩损失。
MDN的描边宽度说明定义了stroke-width;viewBox说明解释坐标范围与视口的对应关系。overflow说明则描述视口裁切。本文显式使用hidden,避免把页面嵌入方式的差异当成修复。
这是编辑设计的几何小样。它没有证明任意复杂SVG只需增加半个线宽:尖角连接、端帽、滤镜阴影、变换和非缩放描边都可能改变绘制范围。先用小样隔离原因,再回到真实文件。
复制这个最小失败输入
把下面内容保存为UTF-8的ring-clipped.svg,或粘贴进支持SVG源码的转换器。画布宽高和viewBox都为100;这是有意制造的失败对照。
在编辑器和最终PNG中看圆环的上、下、左、右四个切点,不只看中心。若预览把超出画布的内容画出来,而下载图没有,最终交付仍以下载文件的实际边界为准。
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100" overflow="hidden">
<circle cx="50" cy="50" r="50" fill="none" stroke="#164e63" stroke-width="12"/>
</svg>两条修复路线,先确定什么必须保持
扩展viewBox能保留原有路径坐标;移动图形并扩展画布则适合不希望出现负坐标的后续流程。只改width/height没有改坐标范围,不能找回已经在边界外的内容。
如果把112单位范围仍输出为100像素,完整圆环会缩小到约89.29%的原单位比例。这可能是正确的固定尺寸图标交付,却不是“补白且主体像素大小不变”。需要主体比例不变时,输出112×112;需要额外余量时输出114×114。
| 设置 | 坐标范围 | 输出 | 预期 |
|---|---|---|---|
| 失败对照 | 0 0 100 100 | 100×100 | 边缘描边超出视口 |
| 几何修复 | -6 -6 112 112 | 112×112 | 包含理论外边界 |
| 交付留白 | -7 -7 114 114 | 114×114 | 理论外边界外另有1单位余量 |
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="114" viewBox="-7 -7 114 114" overflow="hidden">
<circle cx="50" cy="50" r="50" fill="none" stroke="#164e63" stroke-width="12"/>
</svg>在真正的下载文件里完成检查
可在SVG转PNG工具逐份粘贴小样,生成并下载PNG。当前工具把源码渲染为图像再导出;它不会替你分析路径或自动重设viewBox。修改要先在源SVG中完成。
分别保留失败稿与留白稿,核对下载尺寸100×100和114×114。将透明PNG放在浅、深两种背景上查看,放大检查四个切点是否连续,再缩回100%查看实际用途。不要把透明角落误认为丢图。
验收目标是边缘不被画布截断、尺寸符合接收方要求、轮廓位置正确;不是要求所有边缘像素完全不透明。抗锯齿会产生半透明像素。不同渲染器的小范围像素差异也不能单独证明裁切。
交付前逐项确认
- 记录原稿、修复稿与所用viewBox,保留可编辑母版。
- 查看实际PNG尺寸,不从网页缩略图推断。
- 分别检查四个切点、边缘余量与主体是否被意外缩小。
- 若仍裁切,检查父级裁切、clipPath、滤镜范围和变换,不无限增加输出分辨率。
把几何问题与其他导出问题分开
只有尺寸理解不清时,先读viewBox与输出像素的区别;路径轮廓正常而文字变化,则转到字体后备核对。这三种问题可能同现,但修复位置不同。
给接收方注明PNG像素、背景是否透明、主体的批准尺寸,以及对应SVG版本。对复杂商标或技术图,请用能显示实际绘制边界的编辑器检查整幅作品;本例不是自动计算所有图形边界的通用算法。
常见问题
可以直接设overflow="visible"吗?
页面中可见不等于固定尺寸的栅格文件会扩大。交付PNG仍有确定的像素边界,优先把所需内容放进最终画布,并检查下载结果。
参考资料与延伸阅读
按步骤开始处理
进入对应工具,预览处理结果,检查导出的文件。

