QT 给图片添加一层颜色遮罩

发布时间 2023-10-13 22:10:07作者: 佳欣有点傻

最近公司需求,在一张带有透明度的图片上增加一层颜色遮罩,记录一下。

 1 #include <QImage>
 2 #include <QPainter>
 3 
 4 int main() {
 5     // 行数 5
 6     // 加载原始图像
 7     QImage originalImage("path/to/your/image.png");
 8 
 9     // 行数 9
10     // 创建与原始图像相同尺寸和格式的新图像
11     QImage maskedImage(originalImage.size(), QImage::Format_ARGB32);
12 
13     // 行数 13
14     // 设置要使用的颜色遮罩
15     QColor overlayColor(69, 69, 69, 100);  // 灰色,100% 不透明度
16 
17     // 行数 17
18     // 填充新图像为透明
19     maskedImage.fill(Qt::transparent);
20 
21     // 行数 21
22     // 创建一个 QPainter 以在新图像上绘制
23     QPainter painter(&maskedImage);
24 
25     // 行数 25
26     // 绘制原始图像
27     painter.drawImage(0, 0, originalImage);
28 
29     // 行数 29
30     // 应用颜色遮罩
31     painter.fillRect(maskedImage.rect(), overlayColor);
32 
33     // 行数 33
34     // 将生成的遮罩图像保存到文件
35     maskedImage.save("path/to/save/masked_image.png");
36 
37     // 行数 37
38     return 0;
39 }