欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

QT 图片透明度

发布时间:2023/12/20 c/c++ 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 QT 图片透明度 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

设置图片的透明度

方式一是底部参考文章的内容,方式二是因为取值范围为0.0-1.0,所以在方式一的基础上稍加修改;方式三是“QPainter”自己的透明度设置函数。

加载图片

QPixmap m_pixmap;QPixmap m_pixmapTemp;m_pixmap.load("./xxx.png");

方式一:

int m_transparency;

实现

QPainter painter(this);QPixmap temp(m_pixmap.size());temp.fill(Qt::transparent);QPainter p(&temp);// CompositionMode_Source将图片绘制进去p.setCompositionMode(QPainter::CompositionMode_Source);p.drawPixmap(0, 0, m_pixmap);// CompositionMode_DestinationIn设置图片的透明度p.setCompositionMode(QPainter::CompositionMode_DestinationIn);// 根据QColor中第四个参数设置透明度,此处position的取值范围是0~255p.fillRect(temp.rect(), QColor(0, 0, 0, m_transparency));p.end();m_pixmapTemp = temp.copy();painter.drawPixmap(0, 0, m_pixmap.size().width(), m_pixmap.size().height(), m_pixmapTemp);

方式二:

double m_alpha;QColor m_color;QBrush m_brush;

实现

m_color.setRedF(0.0);m_color.setBlueF(0.0);m_color.setGreenF(0.0);m_color.setAlphaF(m_alpha);m_brush.setColor(m_color);m_brush.setStyle(Qt::SolidPattern);QPixmap temp(m_pixmap.size());temp.fill(Qt::transparent);QPainter p(&temp);// CompositionMode_Source将图片绘制进去p.setCompositionMode(QPainter::CompositionMode_Source);p.drawPixmap(0, 0, m_pixmap);// CompositionMode_DestinationIn设置图片的透明度p.setCompositionMode(QPainter::CompositionMode_DestinationIn);// 根据QColor中第四个参数设置透明度,此处position的取值范围是0~255p.setBrush(m_brush);p.fillRect(temp.rect(), m_brush);p.end();m_pixmapTemp = temp.copy();painter.drawPixmap(0, 0, m_pixmap.size().width(), m_pixmap.size().height(), m_pixmapTemp);

方式三:

painter.setOpacity(m_alpha);painter.drawPixmap(0, 0, m_pixmap.size().width(), m_pixmap.size().height(), m_pixmap);

如有错误请指出,谢谢!

参考文章:
https://blog.csdn.net/yejin_tianming/article/details/105113668?utm_medium=distribute.pc_relevant.none-task-blog-utm_term-1&spm=1001.2101.3001.4242

总结

以上是生活随笔为你收集整理的QT 图片透明度的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。