Ich entwickle eine Android-App, die Gammakorrektur eines im Telefon gespeicherten Bildes durchführen kann. Meine Aktivität kann den Bildspeicherort abrufen, aber ich kann die Klassen BufferedImage
und ImageIO
in meiner Anwendung nicht verwenden.Verwendung der BufferedImage- und ImageIO-Klassen in meiner Android-Aktivität
bekomme ich folgende Fehler in Eclipse IDE mit ADT-Plugin ..
ImageIO cannot be Resolved
BufferedImage cannot be Resolved
ich das Bild nicht verarbeiten kann. Ich habe eine Idee, die Java-Bibliotheken zu integrieren, aber ich weiß nicht, wie man das in Android macht
Hier ist die Funktion, die ich brauche, damit es funktioniert.
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;
}
Kann ich getRGB(), getAlpha(), getWidth(), getType() Methoden mit Bitmap. – humandroid
Ja, Sie können alle Operationen auf Bitmap durchführen, auch wenn Sie den RGB-Wert in Bitmap erhalten können. http://stackoverflow.com/questions/5669501/how-to-get-rgb-values-of-bitmap-in-android – urveshpatel50
Ich habe meine Frage bearbeitet. Eine Funktion wurde mit BufferedImage hinzugefügt. Ich muss es in Bitmap ändern und Bitte beachten Sie, dass ich ImageIO for ImageIO.read() brauche; Methode und ImageIO.write(); – humandroid