Hallo liebe Community,
um die Bilder in einer Engine schnell darzustellen, nutze ich BufferedImages. Nun möchte ich die Bilder aber ( Geschwindigkeit spielt eine untergeordnete Rolle ) mit bestimmten Operatoren filtern - Movarec Operator, Sobel, Median, usw. um sie zu glätten, schärfen, Kanten zu detektieren, Rauschen zu verkleinern usw.
Dafür brauche ich die konkreten Pixeldaten des Bildes.
An die kann ich ja kommen über:
in einer Klasse, die BufferedImage erweitert.
Ich habe allerdings bereits jetzt einen sehr hohen Arbeitsspeicher- und CPUverbrauch und habe Angst, dass die Methode da zu langsam ist, um sie bei jeder Nachfrage nach einem Pixel auf Position XY neu zu verwenden und dass ich zu viel Arbeitsspeicher aufbrauche, wenn ich jetzt anfange, für jedes BufferedImage zusätzlich noch seine Rohinformationen anzuzeigen.
Ich weiß, dass die PixelInformationen von BufferedImages, wenn man es richitg macht, im Grafikkartenspeicher gespeichert sind, um das Rendern zu beschleunigen.
Und ich habe noch irgendwelche Informationen mit PixelGrabbern gesehen, die auch die Bildpixel auslesen.
Frage: Wie kriege ich möglichst direkten Zugriff auf die Bildpixel?
um die Bilder in einer Engine schnell darzustellen, nutze ich BufferedImages. Nun möchte ich die Bilder aber ( Geschwindigkeit spielt eine untergeordnete Rolle ) mit bestimmten Operatoren filtern - Movarec Operator, Sobel, Median, usw. um sie zu glätten, schärfen, Kanten zu detektieren, Rauschen zu verkleinern usw.
Dafür brauche ich die konkreten Pixeldaten des Bildes.
An die kann ich ja kommen über:
Java:
(DataBufferInt)getRaster().getDataBuffer()).getData();
Ich habe allerdings bereits jetzt einen sehr hohen Arbeitsspeicher- und CPUverbrauch und habe Angst, dass die Methode da zu langsam ist, um sie bei jeder Nachfrage nach einem Pixel auf Position XY neu zu verwenden und dass ich zu viel Arbeitsspeicher aufbrauche, wenn ich jetzt anfange, für jedes BufferedImage zusätzlich noch seine Rohinformationen anzuzeigen.
Ich weiß, dass die PixelInformationen von BufferedImages, wenn man es richitg macht, im Grafikkartenspeicher gespeichert sind, um das Rendern zu beschleunigen.
Und ich habe noch irgendwelche Informationen mit PixelGrabbern gesehen, die auch die Bildpixel auslesen.
Frage: Wie kriege ich möglichst direkten Zugriff auf die Bildpixel?