Wie kriege ich die RGB Werte von Bildern? ->getRGB()?

Status
Nicht offen für weitere Antworten.

xip

Bekanntes Mitglied
Hallo,

ich hole Bilder von meiner CAM raus und wollte diese ein bischen über ihre Pixel untersuchen.

Meine Rohdaten ist ein Image.

Java:
byte[] raw = videoControl.getSnapshot(null);
image = Image.createImage(raw, 0, raw.length);

Normalerweise mache ich aus einem Image ein BufferedImage und dort habe ich die Methode getRGB();
Und die getRGB von Image gibt ein void zurück. toll.

Habt ihr da eine Idee wie ich an die Daten rankommen?

lg
 

Marco13

Top Contributor
Kann man irgndwo im Profil einstellen, dass JavaME-Threads eine knall-signarote Hintergrundfarbe haben, damit man nicht versehentlich Swingig drauf antwortet?! :oops:
 

xip

Bekanntes Mitglied
tja, habt ihr sowas schon mal gemacht darauf zugegriffen auf die Bilder?


Also ich finde auch bei Google nix was sowas behandelt.
 

xip

Bekanntes Mitglied
achso.

dank dir.

Für alle die es interessiert:

Java:
public static byte[] getByteArray(Image image)
    {
        int raw[] = new int[image.getWidth() * image.getHeight()];
        image.getRGB(raw, 0, image.getWidth(), 0, 0, image.getWidth(), image.getHeight());
        byte rawByte[] = new byte[image.getWidth() * image.getHeight() * 4];
        int n = 0;
        for(int i = 0; i < raw.length; i++)
        {
            int ARGB = raw[i];
            int a = (ARGB & 0xff000000) >> 24; // Transparenzwerte -> ALPHA CHANNEL
            int r = (ARGB & 0xff0000) >> 16;
            int g = (ARGB & 0xff00) >> 8;
            int b = ARGB & 0xff;
            rawByte[n] = (byte)b;
            rawByte[n + 1] = (byte)g;
            rawByte[n + 2] = (byte)r;
            rawByte[n + 3] = (byte)a;
            n += 4;
        }
        raw = null;
        return rawByte;
    }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben