创建图像过滤器时图像处理太慢

时间:2014-05-23 02:46:42

标签: android image-processing opengl-es-2.0 renderscript

我正在开发Android图片编辑器应用。我尝试使用纯Java来创建图像过滤器,但速度太慢了!我听说过有关OPENGL ES 2(Android&#39的EffectFactory类使用它)和RenderScript的内容,但我还没有找到说"处理图像的文档或教程,例如应用图像过滤器,你需要这样做!"。

我正在使用此代码:

public static Bitmap doColorFilter(Bitmap src, double red, double green, double blue) {
    // image size
    int width = src.getWidth();
    int height = src.getHeight();
    // create output bitmap
    Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
    // color information
    int A, R, G, B;
    int pixel;

    // scan through all pixels
    for(int x = 0; x < width; ++x) {
        for(int y = 0; y < height; ++y) {
            // get pixel color
            pixel = src.getPixel(x, y);
            // apply filtering on each channel R, G, B
            A = Color.alpha(pixel);
            R = (int)(Color.red(pixel) * red);
            G = (int)(Color.green(pixel) * green);
            B = (int)(Color.blue(pixel) * blue);
            // set new color pixel to output bitmap
            bmOut.setPixel(x, y, Color.argb(A, R, G, B));
        }
    }

    // return final image
    return bmOut;
}}

2 个答案:

答案 0 :(得分:0)

我希望android-jhlabs会有所帮助。它有许多你可以使用的图像过滤算法 以下是过滤器使用详情:FilterUsage

这是另一个有用的图像处理库: android-lib-magick

OpenCV的Java端口 - JavaCV还有许多可以使用的图像处理类。

以下是我自己建议您遵循的图像处理教程:
Image Processing Tutorial

THANX !!!

答案 1 :(得分:0)

  

你要搜索的是非常广泛的概念,它不像我   将发布我的答案,你得到你需要的一切。

我找到了一些斯坦福大学代表的非常好的例子。关于图像处理概念。 http://www.stanford.edu/class/ee368/Android/

我希望这会帮助你开始,但正如我所说的还有很长的路要走!