2011-11-15 218 views
1

我想讓一些像素半透明。製作像素半透明

使用帶筆顏色的QPainter Qt :: color0和Qt :: color1可以使像素完全透明或不透明,但我試圖將筆顏色設置爲0.5來製作部分透明的像素,但它不起作用如我所料。

在這個例子中,不透明的像素是紅色的,透明的像素是白色(背景顏色,和我期望的半透明像素是粉紅色的,但他們也是白:

http://programmingexamples.net/index.php?title=Qt/Images/SemiTransparentPixels

任何人都可以看到我已經錯了

+0

在你的代碼中,行'painter.setPen(0.5);'可能是沒有做你期望它做什麼你需要做一些像painter.setPen(QColor(255,0,0,127));'就像Stephen Chu建議 –

回答

2

設置阿爾法到您的QColor 0.5(127):http://doc.qt.io/qt-4.8/qcolor.html#QColor-2

+0

Hm即使painter.setPen(QColor(255,0,0,127));正如Tim Meyer所說,右上角(alpha = 127)是紅色而不是粉紅色。透明度是否僅適用於其他對象而不適用於背景? –

+0

我也不明白setAlphaChannel和setMask之間的區別嗎? –

+0

您正在使用QBitmap作爲畫家後臺。位圖僅爲黑白或完全不透明或透明。它不知道任何事情。爲畫家後臺使用QPixmap或QImage。 –