2012-11-01 22 views
11

Tôi đang phát triển một ứng dụng Android có thể thực hiện chỉnh sửa Gamma của hình ảnh được lưu trữ trong điện thoại. Hoạt động của tôi có thể lấy vị trí hình ảnh, nhưng tôi không thể sử dụng lớp BufferedImage và lớp ImageIO trong Đơn đăng ký của tôi.Sử dụng các lớp BufferedImage và ImageIO trong Hoạt động Android của tôi

tôi nhận được lỗi sau trong Eclipse IDE với plugin ADT ..

ImageIO cannot be Resolved 

BufferedImage cannot be Resolved 

tôi không thể xử lý hình ảnh. Tôi có ý tưởng bao gồm các thư viện java nhưng tôi không biết cách thực hiện điều này trong Android

Đây là chức năng tôi cần để làm cho nó hoạt động.

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;   

} 

Trả lời

3

Android không phải là chuẩn java, thiếu một số lớp nhất định. AWT chỉ là không có

1

Tôi nghĩ rằng một vài thư viện Java đang không ở trong Android như AWT

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

nếu nhiều hình ảnh hơn bạn có thể làm

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

hơn đặt trong imageviews như ở trên sử dụng cho vòng lặp. vì android không cung cấp lớp BufferedImage

+0

Tôi có thể sử dụng getRGB(), getAlpha(), getWidth(), phương pháp với Bitmap getType(). – humandroid

+0

có, bạn có thể thực hiện mọi thao tác trên bitmap ngay cả khi bạn có thể nhận giá trịRGB trong bitmap. http://stackoverflow.com/questions/5669501/how-to-get-rgb-values-of-bitmap-in-android – urveshpatel50

+0

Tôi đã chỉnh sửa câu hỏi của mình. Đã thêm một hàm bằng BufferedImage. Tôi cần thay đổi nó thành Bitmap và xin lưu ý rằng tôi cần ImageIO cho ImageIO.read(); và ImageIO.write(); – humandroid

-1
+2

Các liên kết đó có thể trả lời câu hỏi, nhưng sẽ tốt hơn nếu bạn có thể thêm các phần quan trọng từ các liên kết đó vào câu trả lời của bạn - có thể là một ví dụ ngắn về cách sử dụng BitmapFactory. Một ngày nào đó các liên kết đó có thể không hoạt động nữa và câu trả lời này sẽ vô ích. – GameDroids

Các vấn đề liên quan