QT 给图片添加一层颜色遮罩
最近公司需求,在一张带有透明度的图片上增加一层颜色遮罩,记录一下。
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 }