我是Blackberry开发的新手。 我正在使用Blackberry项目。 在这个项目中我想改变图像效果和控制。 图像效果是棕褐色,草图,灰度,负片,翻转等 和控件是亮度,对比度,色调等
我尝试过翻转图像效果。以下是我试过的代码.. 我得到了输出,但它与原始图像重叠。
[图像效果 - 翻转输出]
任何人都可以解决这个问题吗?
位图翻转(位图位图){
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;
}
任何人都可以解决这个问题吗?
答案 0 :(得分: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;
}