镜像模式后如何在qt中合并两个图像?
How to merge two images in qt after mirroring mode?
我需要镜像。我已经完成了那部分,但是当调用此函数时,原始图像在我的图像区域中消失了。我保存了原始图像并使用 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();
QPainter::CompositionMode_DestinationOver
The alpha of the destination is used to blend it on top of the source
pixels.
如果您的图像没有 alpha 通道,您将看不到任何差异。
此外,您的代码中还有其他问题。
- 不需要自己绘制图像
painter.end();
不需要
- 设置合成模式已通过
painter.setCompositionMode();
完成
- 绘图之间设置了合成模式
QPainter painter(mImage);
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);
painter.drawImage(0, 0, reflection);
我需要镜像。我已经完成了那部分,但是当调用此函数时,原始图像在我的图像区域中消失了。我保存了原始图像并使用 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();
QPainter::CompositionMode_DestinationOver
The alpha of the destination is used to blend it on top of the source pixels.
如果您的图像没有 alpha 通道,您将看不到任何差异。
此外,您的代码中还有其他问题。
- 不需要自己绘制图像
painter.end();
不需要- 设置合成模式已通过
painter.setCompositionMode();
完成
- 绘图之间设置了合成模式
QPainter painter(mImage);
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);
painter.drawImage(0, 0, reflection);