黑莓图像处理

时间:2012-03-27 13:30:26

标签: blackberry

我是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;
}

任何人都可以解决这个问题吗?

1 个答案:

答案 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;
    }