qt pixmap图片设置背景颜色为透明
时间: 2024-01-25 12:02:38 浏览: 140
在 Qt 中,可以使用 `QPixmap::convertToFormat()` 函数将 pixmap 转换为支持 alpha 通道的格式,例如 `QPixmap::Format_ARGB32`。然后,使用 `QPainter` 在 pixmap 上绘制一个透明的矩形来设置背景颜色为透明。
下面是示例代码:
```cpp
// 加载图片
QPixmap pixmap(":/images/image.png");
// 将 pixmap 转换为支持 alpha 通道的格式
pixmap = pixmap.convertToFormat(QPixmap::Format_ARGB32);
// 创建 painter
QPainter painter(&pixmap);
// 绘制透明矩形
painter.setCompositionMode(QPainter::CompositionMode_Clear);
painter.fillRect(pixmap.rect(), Qt::transparent);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
// 绘制其他内容
painter.drawText(pixmap.rect(), Qt::AlignCenter, "Hello, world!");
// 在 QLabel 中显示 pixmap
ui->label->setPixmap(pixmap);
```
在这个示例代码中,首先加载一个图片 `image.png`,然后将其转换为支持 alpha 通道的格式。接着,创建一个 `QPainter` 对象,并使用 `setCompositionMode()` 函数将其设置为 `CompositionMode_Clear` 模式,然后使用 `fillRect()` 函数绘制一个透明矩形来设置背景颜色为透明。最后,使用 `setCompositionMode()` 函数将 `QPainter` 对象恢复为 `CompositionMode_SourceOver` 模式,并在 pixmap 上绘制其他内容。最后,在 `QLabel` 中显示 pixmap。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)