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
总结
- 上一篇: 2021-2027全球与中国光刻掩膜版市
- 下一篇: C/C++实现PCA降维以及故障监测