C++ Qt - 一种模仿Photoshop叠加功能的方法

C++ Qt - a way to mimic Photoshop's overlay function

本文关键字:Photoshop 叠加 功能 方法 一种 Qt C++      更新时间:2023-10-16

我正在编写一个必须结合各种图像的应用程序。我有一个基础图像,一个蒙版和一个纹理。一个人可以准备一些透明的纹理和颜色,但这是一项乏味的工作,特别是对我来说,我从来没有擅长过这种东西。

所以我正在寻找一种方法来模仿Photoshop的叠加功能。这可能吗?用户将能够上传一个基础图像,一个蒙版,和一个未动的纹理,而不是准备纹理保持它的颜色,尽管有足够的透明度,以使物体的细节可见。有什么免费的工具我可以使用和实现吗?

诅咒再次降临。发帖之后,我自己马上就能找到答案。

答案很简单:QPainter。它有一个叫做compositionMode的参数,你可以将它设置为各种混合模式,就像在Photoshop中一样。

QPixmap background(backgroundUrl);
QPixmap overlayTexture(overlayUrl);
QPainter painter(&background);
painter.setCompositionMode(QPainter::CompositionMode_Overlay);
painter.drawPixmap(0, 0, overlayTexture);
painter.end();

就是这样。