在我的Android活动中使用BuffereImage和ImageIO类

在我的Android活动中使用BuffereImage和ImageIO类,android,bufferedimage,javax.imageio,Android,Bufferedimage,Javax.imageio,我正在开发一款Android应用程序,可以对手机中存储的图像进行伽马校正。我的活动可以获取图像位置,但我不能在我的应用程序中使用buffereImage类和ImageIO类 我在带有ADT插件的Eclipse IDE中遇到以下错误 ImageIO cannot be Resolved BufferedImage cannot be Resolved 我无法处理图像。我有一个包含java库的想法,但我不知道如何在Android中做到这一点 这是我需要的使其工作的函数 private s

我正在开发一款Android应用程序,可以对手机中存储的图像进行伽马校正。我的活动可以获取图像位置,但我不能在我的应用程序中使用
buffereImage
类和
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;        

}
private static BufferedImage gammaCorrection(BufferedImage original,double gamma){
int alpha、红色、绿色、蓝色;
整数像素;
双伽马新=1/伽马;
int[]伽马查找表=伽马查找表(新伽马查找表);
BuffereImage gamma_cor=新的BuffereImage(original.getWidth()、original.getHeight()、original.getType());

因为(inti=0;iAndroid不是标准的java,它缺少某些类。AWT只是不存在而已

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

     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);
ArrayList aList=new ArrayList();
添加(你的位图);
而不是像上面那样使用for循环在ImageView中设置。 因为android不提供BuffereImage类 位图工厂或位图


我可以在位图中使用getRGB()、getAlpha()、getWidth()、getType()方法吗?是的,即使可以在位图中获取RGB值,也可以在位图上执行所有操作。我已经编辑了我的问题。添加了一个使用BuffereImage的函数。我需要将其更改为Bitmap,请注意,我需要ImageIO.read()的ImageIO;method和ImageIO.write()的ImageIO;首先阅读此文章,您不能使用BuffereImage这些链接可能会回答问题,但如果您可以在答案中添加这些链接中的重要部分,则会更好–可能是一个关于如何使用BitmapFactory的简短示例。有一天,这些链接可能不再有效,然后此答案将毫无用处。