【小技能】svg转png/pdf方法总结和比较

系统环境:MacOS
分辨率=画面水平方向的像素值* 画面垂直方向的像素值

(1)imagemagick

$ brew install imagemagick 
$ brew install ghostscript 
$ convert -density 700 1.svg 1.png  

density表示分辨率 ,分辨率越高,图像越清晰,图像越大。

注意:需要修改svg文件的源码,给出准确的width和height值,不能width=100%否则会报下面的错误:

convert: must specify image size `/var/folders/sm/zk2pqw_55ps2n27_kt7zp2tr0000gn/T/magick-46576beJko71b0TGJ’ @ error/mvg.c/ReadMVGImage/186.

效果:分辨率越高图像越清晰,转换所需要的时间越长,效果还是很不错的,但是图中的字体会改变,如下:
原字体:在这里插入图片描述
转换成图片后的字体:
在这里插入图片描述

imagemagick 指令很多,功能也比较强大,有时间可以学一学:
官网
部分指令总结

(2)页面另存为pdf

缩放页面到合适大小(根据预览的效果判断),打印页面,将页面另存为pdf或者png:

效果:清晰度非超高,很还原,字体也没有变化。

(3)CairoSVG

官网:https://cairosvg.org/documentation/

$ pip3 install cairosvg
$ cairosvg image.svg -o image.png

或者

$ python3
>>> import cairosvg
>>> cairosvg.svg2pdf(url='image.svg', write_to='image.pdf')

效果:效果很差,图片失真严重,需要指定svg的准确width和height值,否则报错。

(4)inkspace

官网:https://inkscape.org/release/inkscape-master/?latest=1
(选择最新版本)直接安装对应系统的安装包即可。
在这里插入图片描述
效果:像素越大图片越清晰,字体也没有改变,软件会自动选中有内容的选区,非常方便!(ps:软件界面好看,功能也很多,i了i了)

总结

方法优点缺点
imagemagickdensity越大图片越清晰、命令行可以批量处理density越大转换越耗时、需要指定svg的width和height
页面另存为pdf图片非常清晰,效果完美需要人工缩放页面到合适程度
CairoSVG可以批量处理图片失真严重、需要指定svg的width和height
inkspace软件功能强大,自动选中选区、导出速率快、图片清晰不可以批量处理

转换成的图片清晰与否于图片的分辨率,分辨率会影响转换时间和图片大小。

get到一款不错的矢量图形工具inkspace😻


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部