2013-11-27 29 views
0

我一直在使用Google搜索这个主题,出于某种原因,我认为我没有设置正确的面具。我想要做的是在圆形QLabel中显示图像。 不应显示穿过边界的图像部分。这是我在做什么Qt:将图像放置在一个圆形Qlabel中 - 遮蔽概念?

QPixmap circ(":/qt/images/circ.png"); 
QPixmap img(":/qt/images/no.bmp"); 
ui.label_h->setMask(circ.mask()); 
ui.label_h->setPixmap(img); 

保监会文件,PNG图像与具有黑色填充它和IMG显然是在图像上如何实现这一目标的任何建议将高度赞赏了一圈。我的代码显然是刚刚是在方形边界图像

更新

这是我使用

QPixmap circ(":/qt/images/circ.png"); 
    QPixmap mask = circ.createMaskFromColor(Qt::black, Qt::MaskOutColor); 
    QPixmap img(":/qt/images/no.bmp"); 
    ui.label_h->setMask(mask); 
    ui.label_h->setPixmap(img); 

,这是之前造成

enter image description here

这些后是链接

http://i.tinyuploads.com/EFxSB7.png

http://i.tinyuploads.com/9knGNd.bmp

回答

0

你打电话circ.mask(),而根据Qt的文档: -

提取从像素图的Alpha通道位图蒙版。

你说CIRC图像具有黑圈,所以无论是改变它有与圆的α信道或从图像创建掩模: -

QPixmap mask = circ.createMaskFromColor(Qt::black, Qt::MaskOutColor); 

然后用这个掩模: -

ui.label_h->setMask(mask); 
+0

刚刚更新了文章 – Rajeshwar

+0

源图像和蒙版图像的大小和颜色深度是否相同,并且您是否也可以显示circ.png图像? – TheDarkKnight

+0

是让我上传文件 – Rajeshwar