PNG pixelweise/blockweise speichern?

A

anonymerBesuch

Gast
Hallo zusammen,

ich habe in meinem Programm einen Algorithmus implementiert, der ein eingelesenes PNG-Bild mehr oder weniger pixelweise bearbeitet und anschließend wieder in ein PNG zurückschreibt.

Bisher habe ich es so gemacht, dass ich das Bild zuerst in ein BufferedImage einlese, darüber den Algorithmus laufen lasse und zum Schluss mit ImageIO.write(meinBufferedImage, "png", dieAusgabedatei) speichere, also alle Schritte hintereinander durchführe.

Um die Geschwindigkeit zu erhöhen,habe mir überlegt, ob man stattdessen schon mit der PNG-Kompression und -speicherung der bearbeiteten Pixel beginnen könnte (etwa in einem zweiten Thread), während das Bild noch nicht vollständig konvertiert ist.

Ist dies mit der PNG-Kompressionstechnik überhaupt möglich (wenn dem Kompressor das gesamte Bild bekannt sein muss, wird es wohl nicht funktionieren) und wenn ja, wie kann man es in Java realisieren?

Vielen Dank für eure Hilfe!
 
F

Firephoenix

Gast
Hi,
.png verwendet deflate als Komprimierung, und zumindest für den Huffmann-Teil der Komprimierung muss dir der gesamte Datensatz bekannt sein.
Ich denke es würde eher sinn machen, wenn du das bearbeiten des Bildes auf Threads aufspaltest, z.b. so, dass du das Bild zuerst in 4 kleine Bilder aufteilst, dann jedes mit einem eigenem Thread bearbeitest und am Ende die fertigen Bilder wieder zu einem zusammensetzt wenn alles durchgelaufen ist.
Ob man dabei durch das unterteilen aber nicht mehr Performance verliert, als man durch das Threading gewinnt kann ich nicht sagen - ausprobieren :)
Gruß
 
A

anonymerBesuch

Gast
Schade...
Eine Parallelisierung des Algorithmus hatte ich mir auch schon überlegt (werde ich wohl jetzt auch durchsetzen), ich hatte mir vom parallelen Komprimieren bloß noch mehr Performance erhofft, da der Algorithmus etwas schneller als die Kompression läuft.
Trotzdem vielen Dank für die schnelle Antwort ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
S Pixelweise Tiles-location herausfinden? Spiele- und Multimedia-Programmierung 6
C Speichern von Daten mit Mysql Spiele- und Multimedia-Programmierung 4
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
M Bilder effizient speichern/serialisieren Spiele- und Multimedia-Programmierung 10
Devil0s 2D Stadt Generator/2D Welt speichern OHNE Tiles Spiele- und Multimedia-Programmierung 5
N [SLICK] Rectangle in Array Speichern Spiele- und Multimedia-Programmierung 3
M MJPEG Stream aufnehmen (Speichern und von VirtualDub weiterverarbeiten lassen). Spiele- und Multimedia-Programmierung 2
A Speichern un Laden mit Serializable Spiele- und Multimedia-Programmierung 4
B Daten speichern: Reflexion vs Serializable Spiele- und Multimedia-Programmierung 8
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
Y Jede Aktion sofort speichern Spiele- und Multimedia-Programmierung 5
aze Java 3D : 3D Objekte speichern und später wieder einlesen Spiele- und Multimedia-Programmierung 9
H Speichern und Öffnen von einem Zeichenprogramm Spiele- und Multimedia-Programmierung 4
S benutzerdefiniertes Tileset in Datei speichern Spiele- und Multimedia-Programmierung 3
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
M Jpanel Graphik speichern Spiele- und Multimedia-Programmierung 6
A Bilder(BMP) speichern Spiele- und Multimedia-Programmierung 2
H Jpeg Bildinformation in ein Char Array speichern? Spiele- und Multimedia-Programmierung 4
U JPG in größe ändern und speichern Spiele- und Multimedia-Programmierung 3
G highscore in *.dat speichern! Spiele- und Multimedia-Programmierung 8
H Bilder speichern 2 - Methode richten? Spiele- und Multimedia-Programmierung 2
H Bilder speichern Spiele- und Multimedia-Programmierung 3
S Inhalt von Canvas3D als jpg - File speichern Spiele- und Multimedia-Programmierung 2
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10

Ähnliche Java Themen


Oben