失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > svg文件保存成svg图片并通过cairosvg库转换png图片

svg文件保存成svg图片并通过cairosvg库转换png图片

时间:2019-03-01 19:23:40

相关推荐

svg文件保存成svg图片并通过cairosvg库转换png图片

之所以会碰到这个需求是因为在做暗网一个站点采集时候其站点验证码均采用svg矢量图格式,一般的打码平台是不能够识别svg格式图片的所以我们需要将如下图所示的一堆转换成svg图片在通过cairosvg转换成png格式的图片

svg验证码图片源码

首先我们要了解到在html中svg标签中内容直接保存svg结尾的文件是自动变为svg图片的如下操作

"""通过xpath语法提取svg标签全部内容,在保存为svg结尾的文件,这时候就会将我们看到的这段svg源码转化为svg格式的图片了"""response = etree.HTML(resp.text)svg = response.xpath('//p[@style="margin-bottom:20px"]/svg')[0]svg = etree.tostring(svg, encoding='utf-8')svg = str(svg, encoding='utf-8')#print(svg)with open('e43cg.svg','w',encoding='utf-8') as f1:f1.write(svg)f1.close()

如上图所示就是我们转换后的svg图片,接下来就是通过cairosvg库将svg转换成png了,cairosvg官方文档安装个库比较简单pip3 install cairosvg -i https://pypi.tuna./simple 记得加个清华源,

安装完成后windows下引用后运行可能会报如下错误

**原因是windows下缺少gtk+这套中的一些图像系统依赖,我们只需下载gtk+全家桶我下载的是2.20下载完成后新建一个目录保存后解压,然后进入到bin目录后复制出完整的bin目录下完整的路径比如我的 C:\ruanjian\GTK\bin 然后右键我的电脑-属性-高级系统设置-环境变量-系统变量-Path 新建输入我们刚才复制的路径如图

或者直接下载 gtk3 安装即可/tschoonj/GTK-for-Windows-Runtime-Environment-Installer

接下来就是svg转png了如下所示也可参照官方文档给出示例文档示例

import cairosvgcairosvg.svg2png(file_obj=open('e43cg.svg',"rb"), write_to='e43cg.png')

如果报路径问题记得指定你图片所在目录的路径

如果觉得《svg文件保存成svg图片并通过cairosvg库转换png图片》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。