2015-03-30 114 views
0

我需要鏡像圖像。我已經完成了這部分,但當調用此函數時,原始圖像會在我的圖像區域中消失。我保存了原始圖像,並使用QPainter繪製了原始圖像,然後鏡像,認爲這兩個圖像將被合成。我仍然只得到鏡像的圖像。我想要鏡像和原始圖像在我的一個圖像區域。這是迄今爲止我所擁有的。如何在qt鏡像模式下合併兩張圖片?

QImage* Original= mImage; //original image 
QImage reflection = mImage->mirrored(true,false);//mirror the original image 

QPainter painter(mImage); 

painter.CompositionMode_DestinationOver; 
painter.drawImage(0, 0, *mImage); 
painter.drawImage(0, 0, reflection); 
painter.end(); 

回答

0

的QPainter :: CompositionMode_DestinationOver

目的地的Alpha被用於混合它在源 像素的頂部。

如果您的圖像沒有alpha通道,您將看不到任何區別。

此外,您的代碼還有其他問題。

  • 上本身繪製圖像是不必要
  • painter.end();是不必要
  • 設定組成模式與painter.setCompositionMode();
  • 組合物模式被設定附圖
  • QPainter painter(mImage); 
    painter.setCompositionMode(QPainter::CompositionMode_DestinationOver); 
    painter.drawImage(0, 0, reflection); 
    
    之間


完成
+0

謝謝,我創建了一個alpha通道,但現在鏡像不起作用 \t \t'QImage mask = mImage-> createAlphaMask(); \t \t QPainter畫家(&mask);' – rampency 2015-03-30 22:30:12

+0

您還需要具有明顯透明度的像素。 – svlasov 2015-03-30 22:31:01

相關問題