我有一个透明的图像(QImage)覆盖在Qt中的视频上。我想改变的颜色,透明的图像,只有在点击按钮。有人能告诉我怎么做吗?
谢谢。
发布于 2014-03-03 09:02:34
这可以在许多方面做到。我建议使用QPainter
来创建新的图像。如果您设置了SourceIn
组合模式,启动图像的alpha通道将应用于您将要进行的任何绘图。你只需要用所需的颜色填充图像。
QPixmap source_image; // should be preserved in a class member variable
QRgb base_color; // desired image color
QPixmap new_image = source_image;
QPainter painter(&new_image);
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
painter.fillRect(new_image.rect(), base_color);
painter.end();
ui->label->setPixmap(new_image); // showing result
请注意,我使用的是QPixmap
而不是QImage
,因为QPixmap
的显示效率更高(可能还可以绘制)。如果您出于某些原因仍然希望使用QImage
,则此代码将使用QImage
而不进行任何更改(当然不包括最后一行)。
源图像:
较高的比较结果:
https://stackoverflow.com/questions/22144683
复制相似问题