2012-11-01 15 views
11

Pracuję nad aplikacją dla systemu Android, która może wykonywać korektę gamma obrazu zapisanego w telefonie. Moja aktywność może uzyskać lokalizację obrazu, ale nie mogę korzystać z klasy BufferedImage i klasy ImageIO w mojej aplikacji.Używanie klas BufferedImage i ImageIO w mojej aktywności Android

pojawia się następujący błąd w Eclipse IDE z pluginu ADT ..

ImageIO cannot be Resolved 

BufferedImage cannot be Resolved 

nie mogę przetwarzać obraz. Mam pomysł włączenia bibliotek java, ale nie wiem, jak to zrobić w Androidzie

Oto funkcja, której potrzebuję, aby działała.

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;   

} 

Odpowiedz

3

Android nie jest standardem java, brakuje niektórych klas. AWT jest po prostu nie istnieje

1

myślę kilka bibliotek Javy w Androidzie nie są niczym AWT

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

jeśli wielokrotny obraz niż można dokonać

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

niż ustawiony w imageviews jak powyżej za pomocą pętli for. bo android nie zapewniają klasę BufferedImage

+0

mogę używać getRGB(), metoda getAlpha(), getWidth(), GetType() metody z bitmapy. – humandroid

+0

Tak, możesz wykonać całą operację na mapie bitowej, nawet jeśli możesz uzyskać wartość RGB w bitmapie. http://stackoverflow.com/questions/5669501/how-to-get-rgb-values-of-bitmap-in-android – urveshpatel50

+0

Mam Edytowane moje pytanie. Dodano funkcję za pomocą BufferedImage. Muszę to zmienić na Bitmapę i proszę zauważyć, że potrzebuję ImageIO do ImageIO.read(); metoda i ImageIO.write(); – humandroid

-1
+2

Te linki mogą odpowiedzieć na pytanie, ale byłoby lepiej, gdybyś mógł dodać ważne części z tych linków w twoja odpowiedź - może krótki przykład, jak używać BitmapFactory. Pewnego dnia linki te przestaną działać, a wtedy ta odpowiedź byłaby bezużyteczna. – GameDroids

Powiązane problemy