QPixmap and QPainter (Qt 5)



  • So i am painting some QPixmaps in widget's PaintEvent using QPainter, and i want to change one color on all of them to trasparent. What is the best way to do it? I am porting my program from Qt 4, and there were method setAlphaChannel, but now i really don't know how to solve this problem. Tryed something like this

    @
    landscape[0].load("gfx/landscape/mount.bmp");
    landscape[0].setMask(landscape[0].createMaskFromColor(QColor(100,100,100),Qt::MaskOutColor));
    @

    But it doesn't work.



  • This sounds like a job for QImage, not for QPixmap...



  • It is posible to replace qpixmap with qimage, but what is the best way replace selected colour to transparent in my image?



  • How about creating a mask using QImage::createMaskFromColor, and then using QPixmap::setMask?



  • So solution was pretty easy using qimage i wrote:

    @
    landscape[0].load("gfx/landscape/mount.bmp");
    landscape[0].setAlphaChannel(landscape[1].createMaskFromColor(qRgb(100,100,100),Qt::MaskOutColor));
    @

    So this code makes currient rgb color for image transparent. Thank's.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.