Man könnte vorschlagen, dass BufferedImage
die beste Option ist, um ein Bild in Java zu verarbeiten. Während es bequem ist, wenn große Bilder zu lesen endet es oft bis in:Wie liest man ein Bild aus dem Stream?
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Erhöhung VM Größe ist keine Lösung in meinem Fall, da einige Eingabedateien wirklich riesig sind.
Also ich bin auf der Suche nach der Art und Weise, wie ein Bild progressiv aus einem Stream gelesen werden kann.
Ich vermute, dass ImageIO.createImageInputStream()
von der ImageIO
könnte die Rechnung passen, aber ich bin mir nicht sicher, wie man es verwendet, um die chunks progressiv zu lesen. Es gibt auch die Klassen PNGMetadata
& PNGImageReader
, die auf den JDKs verfügbar sind, die nützlich scheinen, aber ich fand keine einfachen Beispiele ihrer Verwendung.
Ist das der richtige Weg, oder gibt es bessere Alternativen?
Bitte hinterlassen Sie einen Kommentar, wenn Sie eine Abstimmung ablehnen oder eine Stimme zum Schließen abgeben. – blackSmith
Keine Notwendigkeit, der Tooltip für den Downvote-Pfeil sagt Ihnen bereits alles, was Sie wissen müssen – Clive
@Clive: Danke für den Tipp. Wenn ich jedoch wissen könnte, wie man mit java auf den Header zugreifen kann, würde ich es nicht veröffentlichen. Zur besseren Übersicht kann ich die Frage bearbeiten. Schließlich kann ich nicht akzeptieren, dass es "nicht sinnvoll" ist, da SO zu viele 'java.lang.OutOfMemoryError: Java-Heap-Space 'hat, wenn' BufferedImage' Art von Fragen verwendet wird. – blackSmith