用途:把已有的位图 Logo(webp、png、jpg)封装成自包含的 SVG 文件,使输出与源图逐像素一致。这不是真正的矢量化。当已有位图 Logo 且用户需要 .svg 时,默认采用嵌入方案。
主要能力:脚本生成带 viewBox 的 SVG,viewBox 尺寸取自 magick identify 的源图像素尺寸;MIME 类型按扩展名设为 image/webp、image/png 或 image/jpeg;图像以 base64 内嵌,不依赖外部 href,单独复制 SVG 也能正常显示。
使用方式:保留位图作为唯一真实来源(如 docs/logo.webp),不要删除。在仓库根目录或技能目录运行: python3 skills/raster-logo-svg/scripts/embed-logo.py docs/logo.webp -o docs/logo.svg -l "project-name" 该脚本依赖 ImageMagick(magick identify)获取尺寸,安装命令:brew install imagemagick。生成后需本地打开 SVG 验证与位图一致。GitHub README 建议继续使用位图以获得可靠渲染,SVG 用于插件清单、favicon、npm 包图标等必须 .svg 路径的地方。
适用场景:需要 .svg 路径但只有位图 Logo 时;需要与现有位图完全一致的视觉呈现时。
限制与取舍:非真正矢量,极大放大可能变模糊(与位图相同);文件体积约为 base64 后位图加约 200 字节开销,比原始二进制大约 33%。不要手绘路径“复刻”已有位图品牌 Logo,不要用 potrace/ImageMagick trace 处理全彩字标,不要在用户未明确放弃位图时用 SVG 替换原始位图,未经确认不要将机密或敏感图像嵌入公开仓库。外部引用式 SVG 仅适用于能解析同级文件的本地工具,可移植 .svg 优先用 base64 嵌入。