我需要更改我拥有的 QImage 的 alpha 值,以便它与后面和前面的其他 QImage 混合。这需要快速打开和关闭。
以前我不得不重新创建每一个图像,并用不同的 alpha 值赋予它们新的颜色。但现在我想保留相同的原始图像,而不是重新绘制和绘制它。
我现在正在尝试这样做:
QImage image;
unsigned int rgb;
for(int y=0;y<image.height();y++){
for(int x=0;x<image.width();x++){
rgb=image.pixel(x,y);
image.setPixel(x,y,qRgba(qRed(rgb),qGreen(rgb),qRed(rgb),120));
}
}
我得到了一些相当不可预测的行为。当我切换图像时,有时我会失去颜色或 alpha 没有改变。如果当我切换回来时 alpha 确实发生了变化(我在其他地方硬编码了 alpha 255 而不是 120)它不会恢复正常。
无论如何,这似乎不是正确的方法,它不应该这么困难。似乎应该在图像上调用一个函数来更改 alpha,但我还没有找到。