6

我的程序生成 3 个不同的图像,我想使用一些不透明度设置将它们组合起来。

首先我有原始图像,我已经将其转换为 QPixmap 以在 QGraphicsView 中显示它。

第一张图片.

然后用这个图像进行一些计算并生成一个 QImage,因为我需要基本的像素访问,我还添加了一个图例。

第二张图片.

我想做的是能够混合两个图像,同时能够修改不透明度。我没有展示示例的工具,它应该如下所示:

第三张图片

但是与第一个图像和数据图像混合不透明度。我也希望这个传说保持 100% 可见。如果需要,我可以为图例创建不同的 QImage。

我也确切地知道哪个像素应该被认为是透明的而不是白色的。

将来我想只用一个滑块来调整不透明度,所以我认为如果有一个不涉及每次都计算一个全新图像的解决方案会更好......

任何线索将不胜感激......

4

2 回答 2

3

您可以使用 QGraphicsPixmapItem::setOpacity 为覆盖图像设置 0.0...1.0 范围内的 alpha 混合值,并为背景和前景设置单独的图形项。

如果您确实需要使用混合图像生成像素图,您可以在 QPainter 上使用 setOpacity,然后再在其上绘制像素图。

于 2012-06-20T15:28:30.177 回答
0

有一个支持 alpha 通道 QImage::Format_ARGB32_Premultiplied 的 QImage 类型,它将显示具有由 alpha 控制的不透明度的两个图像 - 只需将两个 QImage 绘制在彼此的顶部

但它是预乘的,所以如果你改变 A,你需要调整所有像素

于 2012-06-20T15:20:24.580 回答