2012-11-01 6 views
11

Sto sviluppando un'applicazione Android che può eseguire la correzione Gamma di un'immagine memorizzata nel telefono. La mia attività può ottenere la posizione dell'immagine, ma non posso usare la classe BufferedImage e la classe ImageIO nella mia Applicazione.Uso delle classi BufferedImage e ImageIO nella mia attività Android

ottengo il seguente errore in Eclipse IDE con plugin ADT ..

ImageIO cannot be Resolved 

BufferedImage cannot be Resolved 

non riesco a elaborare l'immagine. Ho un'idea di includere le librerie java ma non so come farlo in Android

Ecco la funzione che ho bisogno per farlo funzionare.

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;   

} 

risposta

3

Android non è standard java, manca di alcune classi. AWT non è solo lì

1

Penso che un paio di librerie Java non sono in Android come l'awt

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

se immagini multiple di è possibile effettuare

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

che trova in imageviews come sopra usando per ciclo. perché Android non fornisce classe BufferedImage

+0

Posso usare getRGB(), getAlpha(), getWidth(), getType() metodi con bitmap. – humandroid

+0

sì, è possibile eseguire tutte le operazioni su bitmap anche se è possibile ottenere il valore RGB in bitmap. http://stackoverflow.com/questions/5669501/how-to-get-rgb-values-of-bitmap-in-android – urveshpatel50

+0

Ho modificato la mia domanda. Aggiunta una funzione usando BufferedImage. Ho bisogno di cambiarlo in Bitmap e Nota che ho bisogno di ImageIO per ImageIO.read(); metodo e ImageIO.write(); – humandroid

-1
+2

Questi link possono rispondere alla domanda, ma sarebbe meglio se tu potessi aggiungere le parti importanti da quei link in la tua risposta - forse un breve esempio su come usare BitmapFactory. Un giorno quei link potrebbero non funzionare più e quindi questa risposta sarebbe inutile. – GameDroids