chiaminhsu
26th April 2013, 10:06
Hi,
I have to design a canvas where users can drag & drop images as background and paint by tablet.
I use view/scene to drag & drop the background images. After switching mode, user sketch can be captured in a pixmap after tablet events.
However, how can I blend the pixmap (user sketch) into the background images ?
class TabletCanvas : public QGraphicsView
void TabletCanvas::drawForeground(QPainter *painter, const QRectF& rect)
{
QPixmap _m(pixmap); // the pixmap keeps user sketch
//_m.setMask(pixmap.createMaskFromColor(Qt::white, Qt::MaskInColor));
_m.setAlphaChannel(pixmap.createMaskFromColor(Qt:: white, Qt::MaskOutColor));
painter->drawPixmap(0, 0, _m);
}
The above code works like to "paste" sketch on the images.
8992
I want to blend the sketch and 'background' image pieces.
How to do it ?
1. Can I get the scene-coordinate pixamap in QGraphicsView::paintEvnet() or drawForeground() ?
2. Or the user sketch pixmap should be another item in scene ?
Please give me some suggestions, thank you
I have to design a canvas where users can drag & drop images as background and paint by tablet.
I use view/scene to drag & drop the background images. After switching mode, user sketch can be captured in a pixmap after tablet events.
However, how can I blend the pixmap (user sketch) into the background images ?
class TabletCanvas : public QGraphicsView
void TabletCanvas::drawForeground(QPainter *painter, const QRectF& rect)
{
QPixmap _m(pixmap); // the pixmap keeps user sketch
//_m.setMask(pixmap.createMaskFromColor(Qt::white, Qt::MaskInColor));
_m.setAlphaChannel(pixmap.createMaskFromColor(Qt:: white, Qt::MaskOutColor));
painter->drawPixmap(0, 0, _m);
}
The above code works like to "paste" sketch on the images.
8992
I want to blend the sketch and 'background' image pieces.
How to do it ?
1. Can I get the scene-coordinate pixamap in QGraphicsView::paintEvnet() or drawForeground() ?
2. Or the user sketch pixmap should be another item in scene ?
Please give me some suggestions, thank you