Qt之SVG转QPixmap并改变颜色
方法有两种,使用QSvgRenderer与不使用QSvgRenderer
一.效果
二.Qt小贴士:在高分屏下渲染SVG到QPixmap (译)
使用Qt类将SVG转换为QPixmap格式是非常容易的,在Qt文档中有些相关的例子,但是这些例子仅仅处理了屏幕设备的标准像素比为1的情况。
如果你需要在高分屏上显示图像,结果会有些不一样。下面的函数传入SVG文件的路径,并根据第一个参数指定的尺寸返回QPixmap。
QPixmap FromSvgToPixmap(const QSize &ImageSize, const QString &SvgFile)
{
QSvgRenderer SvgRenderer(SvgFile);
QPixmap Image(ImageSize);
QPainter Painter; Image.fill(Qt::transparent); Painter.begin(&Image);
SvgRenderer.render(&Painter);
Painter.end(); return Image;
}
这个函数在标准PC显示器下可以正常工作,QSvgRender对象按照指定的图像尺寸将SVG渲染到QPixmap。但是在高分屏下,你会注意到图像会显示得比正常的小,而且绘制效果不好,这是因为图像是按照屏幕像素比为1的情况进行绘制的。高分屏有更高的像素比,如果图像按照实际的尺寸来渲染,图像看起来就像“缩水了”。
幸运的是, 按照当前屏幕像素比来调整渲染操作并不复杂,如下所示:
QPixmap F
Qt之SVG转QPixmap并改变颜色相关推荐
- QT使用html改变字体颜色,QT中设置字体和更改字体颜色
QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...
- background-image使用svg如何改变颜色
结论 在我多番测试之后,才发现background-image使用svg,改变颜色根本做不了. 分析 当svg图片被使用成background-image,颜色的设置需要在svg内部才能生效.在外部C ...
- 修改svg图片的颜色html,通过CSS改变svg image引入的图片颜色?
在html元素中通过background设置图片icon,然后通过css3的filter滤镜的drop-shadow 设置阴影来呈现这种改变图片颜色的效果.很不错的方法. 但是我现在的元素是在svg中 ...
- 学习踩坑:在Vue项目中使用svg标签却无法改变图标的颜色
在Vue项目中使用svg标签却无法改变图标的颜色 在学习 vue 实战项目的过程中,用到了 svg 模块,对其使用了 fill 属性后,图标的颜色却没有任何的改变,反复查看了视频,步骤是一模一样的,却 ...
- 阿里iconfont上传svg图片空白、或展示不全的解决方案/搜索到的icon无法改变颜色解决方案
问题1:阿里iconfont上传svg图片空白.或展示不全 原因 造成这个问题的原因,可能是因为sketch.dx等软件在导出svg时,自动在svg上添加了一些iconfont平台无法解析的属性造成的 ...
- qt html svg应用,Qt 控件图标SVG实现
Qt 控件图标SVG实现 应用程序开发时为了美观通常都会有几套皮肤,界面背景颜色.文字颜色等是可以调整rgb值切换成对应皮肤的颜色值,但是图标就不可以这样切换,除非提前加载所有皮肤的图标,但是这样就会 ...
- python动态改变标签的颜色_PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
如下所示: # -*- coding: utf-8 -*- import sys from PySide.QtGui import * from PySide.QtCore import * glob ...
- QT中设置字体和更改字体颜色
QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...
- Qt开发Svg Editor分享
使用Qt开发SVG编辑器. (1)支持新建SVG文件. (2)支持画布设置,如大小.背景色.缩放等. (3)支持在新建的文件中添加/编辑以下矢量元素:直线.矩形.多边形.圆.自由线.文字. (4)支持 ...
最新文章
- AJAX学习基础:简单介绍数据岛使用方法
- CICC科普栏目|神经网络浅讲:从神经元到深度学习
- oracle分组排序
- springboot之jackson的两种配置方式
- 转载:CRONTAB格式,命令
- 核聚类与支持向量聚类
- python 运行结果保存_『如何将python运行结果保存成txt,万分感谢呐』python txt教程...
- python3读取excel方法封装_Python读取Excel的方法封装
- 从扁平到立体:Windows 10 图标的演化
- ubuntu突然连不上-调试方式
- hotspot虚拟机的调试
- 使用jfreechart来创建一个简单的饼图
- 推荐算法实现java_利用Java写开源库 覆盖70多种推荐算法
- SqlServer2005数据库文件损坏的拯救过程
- VM虚拟机安装centos6.3详细图文教程
- 2022危险化学品经营单位主要负责人考试模拟100题及模拟考试
- genymotion配置android模拟器
- python 抢票程序_程序员硬核Python抢票教程”,帮你抢回家车票
- pdfjs 浏览器打印字体模糊问题
- 又一所985大学全面改考408!厦门大学计算机考研