2014-02-06 19 views
0

我有一個多面的位圖。我想要突出顯示每個臉部,使臉部的反光部分具有原始顏色,並且該部分的其餘部分被遮住。如何使用Canvas.clipRects突出顯示面部表情?

我不喜歡的東西,

    for(int i=0; i<getNumFaces(); i++) 
        { 

        Rect rect = getRect();         
        canvas = new Canvas(mutableBitmap); 
        canvas.clipRect(rect, Region.Op.DIFFERENCE); 
        canvas.drawColor(Color.BLACK, Mode.SRC_ATOP); 


        }      

        confirmationView.setImageBitmap(mutableBitmap); 

但這讓我的整個圖像的黑色。我知道原因,但無法找出解決方案。

回答

0

有可能是一個更好的辦法,但試試這個:

   canvas = new Canvas(mutableBitmap); 
       for(int i=0; i<getNumFaces(); i++) 
       { 

       Rect rect = getRect();         
       canvas.clipRect(rect, Region.Op.UNION); 


       }      
       Rect all = new Rect(0,0,mutableBitmap.getWidth(), mutableBitmap.getHeight()); 
       canvas.clipRect(all , Region.Op.DIFFERENCE); 
       canvas.drawColor(Color.BLACK); 

       confirmationView.setImageBitmap(mutableBitmap); 

注:我還沒有實際運行此。但其建設一個大剪輯區域組成的所有rects你想保持。然後創建一個包含除想保留的區域以外的所有位圖的剪輯。然後着色你不想保留的部分。

+0

沒有。沒有運氣 ! – user2453055

相關問題