2012-03-27 224 views
0

我是非常新的黑莓開發。 我正在與黑莓項目合作。 在這個項目中,我想改變圖像效果和控制。 圖像效果是棕褐色,素描,灰度,負,翻轉等 和控制是亮度,對比度,色調等黑莓圖像處理

我曾嘗試用於倒裝圖像效果。以下是我試過的代碼.. 我得到了輸出,但它與原始圖像重疊。

[圖像效果翻轉輸出]

任何人都可以解決這個問題??

位圖倒裝(位圖的位圖){

int[] argb = new int[bitmap.getWidth() * bitmap.getHeight()]; 
    bitmap.getARGB(argb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 
    for (int i = 0; i < bitmap.getHeight(); i++) { 
     for (int j = 0; j < bitmap.getWidth(); j++) { 
      int swap = argb[i * bitmap.getWidth() + j]; 
      argb[(bitmap.getHeight() - 1 - i) * bitmap.getWidth() + j] = swap; 
     } 
    } 


    //bitmap.setARGB(data, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 
    Graphics gr=new Graphics(bitmap); 
    gr.clear(0, 0, bitmap.getWidth(), bitmap.getHeight()); 

    bitmap.setARGB(argb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 


    return bitmap; 
} 

任何人都可以解決這個問題?

回答

1

你需要在一個新的argb(稱爲argb_flip)翻轉:

public Bitmap flip(Bitmap bitmap) { 

     int[] argb = new int[bitmap.getWidth() * bitmap.getHeight()]; 

     int[] argb_flip = new int[bitmap.getWidth() * bitmap.getHeight()]; 

     bitmap.getARGB(argb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 
     for (int i = 0; i < bitmap.getHeight(); i++) { 
      for (int j = 0; j < bitmap.getWidth(); j++) { 
       int swap = argb[i * bitmap.getWidth() + j]; 

       argb_flip[(bitmap.getHeight() - 1 - i) * bitmap.getWidth() + j] = swap; 
      } 
     } 

     bitmap.setARGB(argb_flip, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); 

     return bitmap; 
    } 
+0

非常感謝......它的工作原理.. – 2012-03-28 06:31:26

+0

k.If我想翻牌(鏡像)圖像又該我做? – 2012-03-28 08:49:59