项目中有一个功能只能识别svg图,但是我们的原始数据都是jpg或者png图片,这就需要将jpg或者png转成svg了。我们有好几G的原始图片需要转成svg,经过考虑,最终决定用Qt来开发这个小工具,简单方便。废话不多说,直接上核心代码。

void picToSVGCOnvert(const QString &picPath, const QString &svgFile)
{QFile file(picPath);file.open(QIODevice::ReadOnly);QByteArray byData = file.readAll();file.close();QImage image;//image.load(picPath);image.loadFromData(byData);QSvgGenerator generator;generator.setFileName(svgFile);generator.setSize(image.size());generator.setViewBox(QRect(0, 0, image.width(), image.height()));generator.setTitle("SVG");generator.setDescription("SVG File");QPainter painter;painter.begin(&generator);painter.drawImage(QPoint(0, 0), image);painter.end();
}

上面的代码就是实现转换的核心代码,实验证明转换效率高,质量也很好。

下面是windows下运行的截图

下面是linux下的效果,直接在文件服务器上操作,当然是实验数据啦

上述实现了递归转换,只需要指定一个路径,就能实现对该路径下的图片进行转换,包括该路径下子目录的图片也能转换。转换的结果是同名的文件,当然,如果不需要原文件了,可以上述代码的末尾加上

file.remove();

肯定会有人问,为什么不直接用image.load(file)直接打开文件,而是使用QFile去读取。主要是我在linux下不懂为什么QImage直接load图片文件会失败。所以只能退而求其次,使用QFile去读取文件。在windows环境下没有这个问题,可以直接用image.load()方法。

好啦以上就是 Qt的jpg、png图片批处理成svg图工具的内容,欢迎大家交流。

源码及可执行程序

基于Qt的jpg、png图片批处理成svg图工具相关推荐

  1. Qt怎么实现将bmp图片转换成Ascii_一个简单易用但功能强大的图形矢量化软件,扫描图片转换成CAD图的软件等等...

    背景简介 很多童鞋可能可能有想要把图片转成CAD能打开的格式,但是找不到软件,今天要分享的这个软件值得一试. 内容简介 AlgoLabR2VToolkit是一个将光栅图像转换为矢量图像的软件,转换后的 ...

  2. 将图片转换成svg文件,自定义icon小图标,svg速成

    将图片转换成svg文件,自定义icon小图标,svg速成 一.svg是什么? 二.操作步骤 1.进入网站 2.将svg复制 3.引用svg文件 总结 一.svg是什么? SVG是一种图像文件格式,它的 ...

  3. OprenCV学习之路一:将彩色图片转换成灰度图

    //将一张彩色图片转成灰度图:#include<cv.h> #include<cvaux.h> #include<highgui.h> #include<ml ...

  4. 如何将夜晚图片转化为白天图片 matlab,教你简单几步将白天图片转换成夜景图_资源库...

    摘要:教你简单几步将白天图片转换成夜景图_资源库 摘要:今天分享一个有趣的教程,教大家利用滤镜和调整图层,简单几步将白天图片变成夜景图,特别实用,还能学到一个鲜为人知的调色功能,看看赶紧练练吧. 原图 ...

  5. 如何将图片切割成瓦片图?

    目标:知道图片经纬度的前提下,将一张图片切割成瓦片图,并以地图底图的格式生成及保存. 技术:leaflet.js+nw.js 下载地址:https://download.csdn.net/downlo ...

  6. java tif切割成瓦片_将图片切割成瓦片图-(算法+实现)

    [实例简介] 介绍:https://blog.csdn.net/STRIVEYe/article/details/88388072 [实例截图] [核心代码] 919ed105-5c0c-4f11-a ...

  7. 将图片转换成svg格式

    将图片转换成svg格式,试了很多方法,还是这一种更好用. 1.PNGs, BMPs and JPEGs 转 svg 访问网址:https://www.vectorizer.io/ 如图: 操作Uplo ...

  8. 精雕软件怎么把图片转成灰度图_怎么把普通的照片变成浮雕用的灰度图 精雕图 灰度图 浮雕图之间怎么能联系起来使用...

    怎么把普通的照片变成浮雕用的灰度图 用PS啊,里面有这种效果的,若需要帮忙的话,可以加发给我一份啊,尽量帮你哈,呵呵 用 photoshop 把照片变成灰度图,用PS做有很多方法,介绍两种: 方法1: ...

  9. 位图和矢量图格式有什么区别?如何一键把图片转换成矢量图?

    我们在做图片设计的时候经常会说到位图和矢量图格式,有时候在进行图片编辑时的素材往往尺寸较小,在进行放大或缩小后会降低图片的清晰度,这个时候经常会有人建议说把位图格式的图片转换成矢量图格式的图片会提高设 ...

最新文章

  1. H5使用百度地图SDK获取用户当前位置并且标记显示在地图
  2. 关于微博溯源的后续问题
  3. Spark算子汇总和理解(详细)
  4. Delphi 的各种错 误 信 息(中英文)
  5. 从网上发现的经典js脚本
  6. 数据仓库分层和元数据管理
  7. 你研究过单例么?这样写单例效率最高.
  8. 共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据...
  9. Confluence 6 教程:在 Confluence 中导航
  10. 风“云”大会,创新突围
  11. java获取当前周数_java获取周数的方法
  12. Python菜鸟教程
  13. sort(()=>{return Math.random()-0.5)}乱序数组不准确
  14. Spel spring表达式
  15. UMI绝对定量转录组+代谢组联合研究β-葡萄糖苷酶抑制剂在草菇采后贮藏中的应用前景
  16. mysql 枚举字段_MySQL字段中的枚举
  17. oracle 执行计划(F5)详解
  18. 布考斯基样样干_查尔斯·布考斯基经典语录
  19. 游戏设计的艺术:一本透镜的书——第二十五章 好的游戏是通过游戏测试做出来的
  20. ubuntu18美化(完整版)

热门文章

  1. xorm框架连接mysql实现crud
  2. javascript undefined使用场景
  3. Web项目部署阿里云服务器全过程——详细篇
  4. Rust crates源国内加速镜像配置说明
  5. 三分钟教你学Git(二十七) - 修改多个commit
  6. Win10 Thinkpad CarbonX1 6th gen笔记本检测不到外接显示器的问题
  7. 微信小程序 大学生心理健康测试系统
  8. 英文版权声明_【好书推荐】英文原版绘本 凯奖作家Steve Jenkins作品 Animal Dads 平装...
  9. DIY自行轻松解决耳机缠绕问题
  10. 教你识别什么是一年工作经验by小新