镜像模式后如何在qt中合并两个图像?

时间:2015-03-30 17:52:38

标签: qt qpainter qimage

我需要镜像一个图像。我完成了那部分,但是当调用此函数时,原始图像在我的图像区域消失了。我保存了原始图像,使用QPainter绘制了原始图像然后镜像,认为两个图像都将被合成。我还是只得到了镜像。我想在我的一个图像区域上显示镜像和原始图像。这是我到目前为止所拥有的。

QImage* Original= mImage; //original image
QImage reflection = mImage->mirrored(true,false);//mirror the original image

QPainter painter(mImage);

painter.CompositionMode_DestinationOver;
painter.drawImage(0, 0, *mImage);
painter.drawImage(0, 0, reflection);
painter.end();

1 个答案:

答案 0 :(得分:0)

  

的QPainter :: CompositionMode_DestinationOver

     

目的地的alpha用于将其混合在源的顶部   像素。

如果您的图片没有Alpha通道,您将看不到任何差异。

此外,您的代码中还有其他问题。

  • 无需绘制图像
  • painter.end();是不必要的
  • 使用painter.setCompositionMode();
  • 设置合成模式
  • 合成模式在图纸之间设置


QPainter painter(mImage);
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);
painter.drawImage(0, 0, reflection);