2012-03-27 91 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