svg图片构造QGraphicsSvgItem对象耗时很长的问题解决

这篇具有很好参考价值的文章主要介绍了svg图片构造QGraphicsSvgItem对象耗时很长的问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 问题的提出

2. 问题解决


1. 问题的提出

      今天通过一张像素为141 * 214,大小为426KB的svg格式的图片构造QGraphicsSvgItem对象,再通过Qt的Graphics View Framework框架,将QGraphicsSvgItem对象显示到场景视图上,代码如下:

#include <QElapsedTimer>
#include <QGraphicsSvgItem>
......   // 其它头文件略

......   // 其它代码略

auto pBatteryChargeGraphicsScene = new QGraphicsScene(this);
ui->graphicsView->setScene(pBatteryChargeGraphicsScene);
   
QElapsedTimer timer;
timer.start();

auto pPeiDianGuiComponent = new QGraphicsSvgItem(QStringLiteral(":/uavGuarantee/image/batteryChargeShelters/peidiangui.svg"));

qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";

pPeiDianGuiComponent->setPos(100, 100);
pBatteryChargeGraphicsScene->addItem(pPeiDianGuiComponent);


......   // 其它代码略
其中ui->graphicsView为QGraphicsView类对象,第13行竟然耗时6376毫秒,如下:

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决,# Qt平时遇到的疑难点,QGraphiSvgItem,Qt,GraphicsView,QGraphicsScene

最要命的是程序一起来就需要加载QGraphicsSvgItem对象上百个,那就更慢了,十分影响用户体验。

2. 问题解决

用Adobe Photoshop打开svg图片,选择“文件->导出->导出为...”,如下:

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决,# Qt平时遇到的疑难点,QGraphiSvgItem,Qt,GraphicsView,QGraphicsScene

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决,# Qt平时遇到的疑难点,QGraphiSvgItem,Qt,GraphicsView,QGraphicsScene

在右侧“重新采样”下拉框中选择“两次线性”,然后单击右下角“导出”按钮,此时原来426KB的svg图片变为了10KB,然后改为加载此10KB的svg图片,效率提升很多,耗时如下:

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决,# Qt平时遇到的疑难点,QGraphiSvgItem,Qt,GraphicsView,QGraphicsScene文章来源地址https://www.toymoban.com/news/detail-827315.html

到了这里,关于svg图片构造QGraphicsSvgItem对象耗时很长的问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SVG图片文件转换成Vector

    按照下列步骤操作: 打开Android Studio。 在项目中选择要放置Vector Drawable的 res 文件夹。 右击 res 文件夹,选择 New Vector Asset 。 在弹出的窗口中选择 Local file (SVG, PSD) 选项。 上传你的SVG文件。 根据需要调整导入选项,如大小和颜色。 完成后点击 Next ,然后点击 Finish 。 这样,

    2024年01月23日
    浏览(29)
  • 微信小程序不支持svg图片

    如果想使用svg也要转换成base64或者网络图片 否则在开发者工具中是显示图片的 而在手机微信预览中就无法显示图片 让人疑惑 require()是nodejs的写法 用于导入模块、JSON 和本地文件 可以使用相对路径 该路径可以使用路径别名命名的目录或当前工作目录进行解析。 在vue中使用

    2024年02月09日
    浏览(39)
  • 【CSS】SVG图片属性及修改颜色

    最近的开发中遇到了SVG不能修改颜色的问题,以前是直接用,没有研究过,现在搞个笔记记录下 width:设置最终SVG图片的宽度 height:设置最终SVG图片的高度 viewbox:视区,在svg上截取一块,然后放大到整个svg图片上,也就是上述所有最终的宽高 fill:设置颜色 举例: 在上述的SV

    2024年04月17日
    浏览(46)
  • 图片转Svg格式以及压缩优化方法

    除了文中方法,还可以使用 svgo 工具对svg图片进行压缩:可参考svgo 前端有些时候需要把像png、jpg等格式的图片转为svg格式的矢量图使用,但是直接去一些网站里转换,得到的svg代码往往因为冗余信息实在太多,大得离谱 看着都头疼 以至于cv到QQ里都发不出去 所以查了一波资

    2024年02月05日
    浏览(48)
  • 图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)

    一、浏览器网页展示图片方法 1.1、HTML img 标签 img 标签常用属性 序号 属性 描述 1 src 用于指定图片的 URL 或路径。 2 alt 用于当图片无法展示时显示的替代文本,seo优化时要注意添加这个属性。 3 width/height 用于指定图片展示的宽度和高度。如果只指定其中一个值,那么另一个

    2024年02月11日
    浏览(67)
  • 怎么修改svg的颜色? img引入svg图片怎么修改颜色的三种方法

    效果图 此时css对svg文件无法生效,此时要用到CSS3滤镜filter中的drop-shadow,通过生产一个可指定颜色的阴影放置于svg的位置,并将原始svg移出视线 效果图 如果项目中用到svg比较多,前两种方法会比较啰嗦,每次写一遍方法二的样式比较麻烦,这时可以考虑封装组件, 结合实际需要

    2024年02月11日
    浏览(55)
  • 微信小程序里面如何使用svg图片

    首先准备一段svg代码如下: 然后按照下面的格式更改 也打开下面的网址转, https://codepen.io/jakob-e/pen/doMoML 将svg代码贴到下图中红线圈起来的位置,会自动转成base64, 然后将base64代码部分复制下来放到浏览器里面打开,可以看到结果. 最后在小程序里面使用,如下 结果:

    2024年02月11日
    浏览(67)
  • 将安卓XML图标转换成SVG图片

    首先要明确的是,安卓 XML 格式的图标其实是 XML 矢量图片,与SVG图片及其类似,同根同源。 缩放矢量图形(英语:Scalable Vector Graphics,即SVG)是一种基于可扩展标记语言 XML ,用于描述二维矢量图形的图形格式。 .svg格式相对于.jpg、.png甚至.webp具有较多优势: 图像与分辨率

    2024年02月22日
    浏览(52)
  • 分享html网页引入svg图片的4种方法

    本文主要介绍了html网页引入svg图片的4种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着微点阅读小编来一起学习学习吧 web应用开发使用svg图片,总结了下,可以有如下4种方式: 1. 直接插入页面。 2. img标签

    2024年02月09日
    浏览(44)
  • react umi中使用svg线上图片不加载问题

    参考链接: https://www.jianshu.com/p/c927122a6e82 前言: 在react项目中,我们本地通过img标签的src使用svg图片是可以加载的,但是发布到线上图片加载不出来。 解决方案 方案一 使用场景:直接在当前页面引入svg图片 有一个 svgr 插件,是支持以 react component 的方式,引入 svg 图片的。

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包