# Bild ohne Image auf die Festplatte streamen



## bene2808 (10. Dez 2013)

Hallo,

ich habe ein Programm geschrieben, das in der Lage ist, in ca. 30s ein Labyrinth 10000x10000 zu erstellen. Nun will ich dieses Labyrinth aber als Bilddatei auf meiner Festplatte speichern. Die Variante, die ich normalerweise dafür nehme, wäre das Erstellen eines BufferedImage und dann mit Graphics draufrendern. ABER: Ein Labyrinth dieser Größe benötigt ein Bild der Größe 20001x20001 und diese Größe kann ich nur mit dem Erweitern des RAMs für Java ermöglichen, wovon ich "grundsätzlich abgeneigt" bin. Außerdem gäbe es auch hier eine Obergrenze, nämlich bei meinem PC 8 GB.

Deswegen wollte ich fragen, wie man am besten direkt von Graphics aus auf die Festplatte in eine Bilddatei streamt, das müsste doch möglich sein, oder? Oder überhaupt: Wie man meinetwegen auch mit einem Byte-Salat über einen OutputStream in ein png-File schreibt.

Vielleicht habe ich jetzt auch etwas völlig verdreht, das ganze ist ja eigentlich auch nur theoretisch (10000x10000), aber ich wäre trotzdem danbar über jeden Hilfsansatz.


----------



## Gucky (10. Dez 2013)

Nur der Interesse halber: Warum brauchst du, um etwas darzustellen, ein viermal so großes Bild?


----------



## Ruzmanz (11. Dez 2013)

Und warum willst du das Labyrinth als Bild abspeichern? Bei der Größe kann es doch wahrscheinlich niemand öffnen? Wenn du es nur mit deinem Program öffnest, kannst du es auch einfach kodieren:

aaaaaaa
sbbaaaa
aabaaaa
aabaaaa
aazaaaa

Spart eine Menge Platz / Zeit.


----------



## bene2808 (11. Dez 2013)

Mit 10000x10000 meine ich, dass es 100.000.000 Felder sind, dass zwischen benachbarten aber noch ein Durchgang oder eine Mauer liegt. Mein Fehler, nicht genau genug beschrieben. Macht also:

Breite(Die Felder selbst) + Breite(Die Wände dazwischen) + 1
Höhe...

Bei mir also 20001x20001.

Mein Bild 20001x20001 kann ich noch mit der Windows-Fotoanzeige öffnen, ich weiß nicht wo die Obergrenze liegt. Ist es also möglich, direkt auf die Festplatte zu streamen, um nicht das gesamte Bild auf einmal im Arbeitsspeicher halten zu müssen? Das ganze sollte sich doch machen lassen, wenn ich genau wüsste, wie ein png-Bild seine Daten speichert, dann könnte ich Byte für Byte in die Datei schreiben.


----------



## Gucky (11. Dez 2013)

Guck dir mal .TIF oder .RAW an. Diese Codecs sind glaube ich einfacher.


----------

