2012-11-01 31 views
11

में BufferedImage और ImageIO कक्षाओं का उपयोग करके मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं जो फोन में संग्रहीत छवि का गामा सुधार कर सकता है। मेरी गतिविधि छवि स्थान प्राप्त कर सकती है, लेकिन मैं अपने आवेदन में BufferedImage कक्षा और ImageIO कक्षा का उपयोग नहीं कर सकता।मेरी एंड्रॉइड गतिविधि

मैं एडीटी प्लगइन के साथ ग्रहण आईडीई में निम्न त्रुटि प्राप्त ..

ImageIO cannot be Resolved 

BufferedImage cannot be Resolved 

मैं छवि को संसाधित नहीं कर सकते हैं। मुझे जावा पुस्तकालयों को शामिल करने का एक विचार है, लेकिन मुझे नहीं पता कि एंड्रॉइड

में यह कैसे करना है, यह कार्य है जिसे मुझे इसे काम करने की आवश्यकता है।

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;   

} 

उत्तर

3

एंड्रॉइड मानक जावा नहीं है, इसमें कुछ वर्गों की कमी है। AWT सिर्फ वहाँ नहीं है

1

मुझे लगता है कि कुछ जावा लाइब्रेरीज अगर से एकाधिक छवि आप

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

तरह imageviews में सेट से बना सकते हैं AWT

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

तरह एंड्रॉयड में नहीं हैं लूप के लिए उपयोग कर ऊपर। क्योंकि एंड्रॉयड प्रदान नहीं BufferedImage कक्षा

+0

मैं उपयोग कर सकते हैं getRGB(), getAlpha(), getWidth(), GetType() बिटमैप साथ तरीकों। – humandroid

+0

हाँ आप बिटमैप पर सभी ऑपरेशन कर सकते हैं भले ही आप बिटमैप में आरजीबी मान प्राप्त कर सकें। http://stackoverflow.com/questions/5669501/how-to-get-rgb-values-of-bitmap-in-android – urveshpatel50

+0

मैंने अपना प्रश्न संपादित किया है। BufferedImage का उपयोग कर एक समारोह जोड़ा गया। मुझे इसे बिटमैप में बदलने की जरूरत है और कृपया ध्यान दें कि मुझे ImageIO.read() के लिए ImageIO की आवश्यकता है; विधि और ImageIO.write(); – humandroid

-1
+2

का उपयोग नहीं कर सकते हैं वे लिंक प्रश्न का उत्तर दे सकते हैं, लेकिन बेहतर होगा यदि आप उन लिंक से महत्वपूर्ण हिस्सों को जोड़ सकते हैं आपका उत्तर - बिटमैप फैक्ट्री का उपयोग करने के तरीके पर शायद एक छोटा सा उदाहरण। एक दिन वे लिंक अब काम नहीं कर सकते हैं और फिर यह जवाब बेकार होगा। – GameDroids