QPainter的CompositionMode
即 将两张图以某种mode融合在一起:
假设有图src、图dst、融合后的结果图ret,具体应用就是先在ret上画了dst,然后再以某种mode将src画在ret上。
一个应用:给图片添加一个蒙层
// 原图pixmapSrc
QPixmap grayPixmap(pixmapSrc.size());
grayPixmap.fill(Qt::transparent);
QPainter painter(&grayPixmap);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.drawPixmap(0, 0, pixmapSrc);
painter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
painter.setBrush(QColor(26, 27, 31, 128));
painter.drawEllipse(grayPixmap.rect());
painter.end();
参考例子
参考imagecomposition里的ImageComposer::recalculateResult(),然后拿例1试一试不同的mode,大概就会用了。