【发布时间】:2014-07-29 17:59:12
【问题描述】:
我正在尝试在另一个图像上绘制图像(并且该部分有效),但在绘制叠加图像之前,我想降低它的不透明度。这就是我遇到麻烦的地方。我的叠加图像是PNG,它们本身具有透明区域,否则它们的内容是黑色的。在 Qt 中,我循环遍历每个像素,我无法确定像素是否透明——它告诉我每个像素都是黑色的,带有完整的 alpha。我试过检查像素颜色和 alpha,但我一定做错了。搜索并没有找到解决方案。这是我正在使用的小循环:
// Set Alpha
for (int x = 0; x < overlay.width(); x++)
{
for (int y = 0; y < overlay.height(); y++)
{
pixelColor = QColor(overlay.pixel(x,y));
if (pixelColor.alpha() == 255)
{
overlay.setPixel(x, y, QColor(0,0,0,200).rgba());
//qDebug() << "Not Skipped";
}
else
{
qDebug() << "Skipped";
}
}
}
QImage 说我的叠加图像格式是 Format_ARGB32。有人知道我在做什么错吗?根据 Qt 文档,我应该能够使用 alpha(),但它为每个像素提供了 255 个。也许我弄错了颜色?
【问题讨论】:
标签: qt transparency