2012-04-02 89 views
1

嗨我想转换成镜像,即在BLACKBERRY应用中的翻转效果。我试过这段代码,但无法转换...有没有人帮我做到这一点...镜像黑莓中的图像

如果你有不同的逻辑来做到这一点,请分享..

public Bitmap changetoFlopEffect(Bitmap bitmap){ 

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

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

    for(int i=0;i<=bitmap.getHeight();i++) 
    { 
     for(int j=bitmap.getWidth(),k=0;j>0;j--) 
     { 
       //newargb[k]=argb[j]; 
       int swap=argb[j]; 
       newargb[k]=swap; 
       k++; 
     } 
    } 
     bitmap.setARGB(newargb,0,bitmap.getWidth(),0,0,bitmap.getWidth(),bitmap.getHeight()); 
    return bitmap;  
} 
+0

这是什么问题?我的意思是一些像素镜像?发表一些你得到的图片 – tipycalFlow 2012-04-03 05:43:56

回答

0

你的角落条件似乎错了,你刷卡像素仅从第一行。试试这个:

public Bitmap changetoFlopEffect(Bitmap bitmap){ 

int[] argb = new int[bitmap.getWidth() * bitmap.getHeight()]; 
int[] newargb =new int[bitmap.getWidth() * bitmap.getHeight()]; 
int length=bitmap.getWidth(); 
int newIndex = 0; 

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

for (int i = 0; i < bitmap.getHeight(); i++) 
    for (int j = bitmap.getWidth()-1; j >= 0 ; j--){ 
    newargb[newIndex] = argb[i * bitmap.getWidth() + j]; 
    newIndex++; 
    } 
    bitmap.setARGB(newargb,0,bitmap.getWidth(),0,0,bitmap.getWidth(),bitmap.getHeight()); 
return bitmap;  
} 
+0

我已经在回复之前解决了这个问题....但是你的回复输出比我好。所以谢谢你......你能帮我消极和单色的图像...回复 – 2012-04-03 06:17:45

+0

我用javax.microedition.amms.control.imageeffect的ImageEffectControll接口。我发现这个链接http://www.blackberry.com/developers/docs/6.0.0api/javax/microedition/amms/control/imageeffect/ImageEffectControl.html 这是为monochrom和负面影响.. 如果你有此解决方案请分享你的逻辑。 – 2012-04-03 06:29:56

+0

回复我的这个主题 - 如何在黑莓应用程序中对图像应用单色和负面效果。 – 2012-04-03 08:42:19