在我的Android Activity中使用BufferedImage和ImageIO类

时间:2012-11-01 18:21:11

标签: android bufferedimage javax.imageio

我正在开发一款可以对存储在手机中的图像进行Gamma校正的Android应用程序。我的活动可以获取图片位置,但我无法在我的应用程序中使用BufferedImage类和ImageIO类。

我在带有ADT插件的Eclipse IDE中出现以下错误..

 ImageIO cannot be Resolved

 BufferedImage cannot be Resolved  

我无法处理图像。我有一个想法,包括java库,但我不知道如何在Android

中做到这一点

这是我需要的功能。

private static BufferedImage gammaCorrection(BufferedImage original, double gamma) {

    int alpha, red, green, blue;
    int newPixel;

    double gamma_new = 1 / gamma;
    int[] gamma_LUT = gamma_LUT(gamma_new);

    BufferedImage gamma_cor = new BufferedImage(original.getWidth(), original.getHeight(), original.getType());

    for(int i=0; i<original.getWidth(); i++) {
        for(int j=0; j<original.getHeight(); j++) {

            // Get pixels by R, G, B
            alpha = new Color(original.getRGB(i, j)).getAlpha();
            red = new Color(original.getRGB(i, j)).getRed();
            green = new Color(original.getRGB(i, j)).getGreen();
            blue = new Color(original.getRGB(i, j)).getBlue();

            red = gamma_LUT[red];
            green = gamma_LUT[green];
            blue = gamma_LUT[blue];

            // Return back to original format
            newPixel = colorToRGB(alpha, red, green, blue);

            // Write pixels into image
            gamma_cor.setRGB(i, j, newPixel);

        }

    }

    return gamma_cor;        

}

4 个答案:

答案 0 :(得分:4)

Android不是标准的java,它缺少某些类。 AWT就在那里

答案 1 :(得分:1)

我认为一些Java库不像Android那样在Android中

答案 2 :(得分:1)

     String selectedImagePath;
     ImageView img;
     img = (ImageView)findViewById(R.id.ImageView1);
     Bitmap  yourSelectedImage = BitmapFactory.decodeFile(selectedImagePath);
     img.setImageBitmap(yourSelectedImage);

如果多个图像比  你可以做

        ArrayList<Bitmap> aList = new ArrayList<Bitmap> ();
        aList.add(yourbitmap);

使用for循环在上面的imageview中设置。 因为android没有提供BufferedImage类

答案 3 :(得分:-1)