Java bild downloaden

öffentliche statische void saveImage(String imageUrl) löst IOException aus, URL URL = neue URL(imageUrl); String fileName = url.getFile(); String destName = “./figures” + fileName.substring(fileName.lastIndexOf(“/”)); System.out.println(destName); InputStream ist = url.openStream(); OutputStream os = neuer FileOutputStream(destName); Byte[] b = neues Byte[2048]; int Länge; while ((length = is.read(b)) != -1) é os.write(b, 0, length); os.close(); Eine weitere häufige Möglichkeit, den Range-Header zu verwenden, ist das Herunterladen einer Datei in Blöcken durch Festlegen verschiedener Bytebereiche. Um beispielsweise die 2 KB-Datei herunterzuladen, können wir den Bereich 0 – 1024 und 1024 – 2048 verwenden. Als Nächstes erstellen wir eine HTTP GET-Anforderung und registrieren einen AsyncCompletionHandler-Handler, um den heruntergeladenen Inhalt zu verarbeiten: Neben dem Lesen aus Dateien oder URLS können Bild-E/A-Dateien aus anderen Quellen, z. B. einem InputStream, gelesen werden. ImageIO.read() ist die einfachste Komfort-API für die meisten Anwendungen, aber die javax.imageio.ImageIO-Klasse bietet viele weitere statische Methoden für erweiterte Verwendungen der Image-E/A-API. Die Auflistung von Methoden für diese Klasse stellt nur eine Teilmenge der umfangreichen APIs zum Ermitteln von Informationen über die Bilder und zum Steuern des Bilddekodierungsprozesses (Lesen) dar. Bild-E/A erkennt den Inhalt der Datei als JPEG-Formatbild und dekodiert sie in ein BufferedImage, das direkt von Java 2D verwendet werden kann. Weitere Informationen finden Sie im Paket javax.imageio. Das verwendet das AWT-Bild. Sonst könnten Sie es tun: Wir haben auch gesehen, wie wir einen Zero-Copy-Download mit Java NIO Channels implementieren können. Dies ist nützlich, da die Anzahl der Kontextwechsel beim Lesen und Schreiben von Bytes minimiert wurde und die Bytes nicht in den Anwendungsspeicher geladen werden, indem direkte Puffer verwendet werden.

Wir verwenden die transferFrom()-Methode aus der ReadableByteChannel-Klasse, um die Bytes von der angegebenen URL in unseren FileChannel herunterzuladen: Angesichts der URL eines Bildes können Sie sie mit dem folgenden Java-Code herunterladen. In einem realen Szenario benötigen wir beispielsweise unseren Downloadcode, um asynchron zu sein. Java 2D unterstützt das Laden dieser externen Bildformate in das BufferedImage-Format mithilfe der Image I/O-API, die sich im Paket javax.imageio befindet. Bild-E/A bietet integrierte Unterstützung für GIF, PNG, JPEG, BMP und WBMP. Bild-E/A ist auch erweiterbar, so dass Entwickler oder Administratoren unterstützungsfähig für zusätzliche Formate unterstützen können. Beispielsweise sind Plug-Ins für TIFF und JPEG 2000 separat verfügbar. Gelegentlich kann es nützlich sein, ein Bild programmgesteuert von einer URL herunterzuladen und als Datei zu speichern.

Published by Matt

Recycling old computers