bufferedimage Pixelweise auslesen

bspainkf36

Erfahrenes Mitglied
Hey,
ich würde gerne ein Bild Pixel für Pixel auslesen. Ich habe folgenden Code:

Code:
int w = _bufferedImage.getWidth(null);
int h = _bufferedImage.getHeight(null);
int[] rgbs = new int[w*h];
_bufferedImage.getRGB(0, 0, w, h, rgbs, 0, w);
		
for (int i = 0; i < rgbs.length; i++) {
  Color c = new Color(rgbs[i]);
  System.out.print("Red: " + c.getRed());
  System.out.print("Green: " + c.getGreen());
  System.out.println("Blue: " + c.getBlue());
}

Leider ist die Ausgabe immer 0. Ich habe auch schon PixelGrabber getestet, jedoch gleichem Erfolg. Hat jemand Rat?

Danke für die Hilfe.

Gruß Kon
 
Hallo!

Also bei mir funktioniert das ohne Probleme:
Java:
/**
 * 
 */
package de.tutorials;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

/**
 * @author Tom
 */
public class PixelExtractionExample {
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        BufferedImage bufferedImage = ImageIO.read(new File("c:/desktop.jpg"));
        analyze(bufferedImage);
    }

    private static void analyze(BufferedImage bufferedImage) {
        int width = bufferedImage.getWidth(null);
        int height = bufferedImage.getHeight(null);
        int[] pixels = new int[width * height];
        bufferedImage.getRGB(0, 0, width, height, pixels, 0, width);

        for (int i = 0; i < pixels.length; i++) {
            int rgb = pixels[i];
            System.out.println(new Color(rgb));
        }
    }
}
Ist dein BufferedImage vielleicht schwarz bzw. noch nicht vollständig geladen?

Gruß Tom
 
Hey,
danke für die Antwort. Ich habe deine Methode ausprobiert und sie funktioniert wunderbar. Leider hatte sich zuvor noch ein blöder Fehler eingeschlichen ...

Code:
_bufferedImage = new BufferedImage(_size, _size,
				BufferedImage.TYPE_INT_ARGB);

Ich habe das BufferedImage immer wieder neu initialisiert ... manchmal sieht man den Wald vor lauter Bäumen nicht ;) Danke

Greetz kon
 
Zurück