-
Notifications
You must be signed in to change notification settings - Fork 0
Bilder
Diese Seite liefert eine kurze Einführung in die Eigenheiten von Bildern in jpapi.
Zugriff auf Bilder
Alle Bilder, die mit einem bestimmten Spiel verknüpft sind, sind im Project-Objekt des Spiels als Image-Objekte gespeichert und können über die getImages()-Methode des Projekts erhalten werden. Das kann beispielsweise so aussehen:
Project spiel = Project.getAll(OrderedBy.RATING)[0];
Image[] bilder = spiel.getImages();Image-Objekte speichern leider nicht die eigentlichen Daten des Bildes, sondern nur Meta-Informationen wie den Dateinamen, das Uploaddatum und den Ersteller. Um auf das eigentliche Bild zuzugreifen wird die ImageProvider-Klasse benötigt. Diese beinhaltet dafür verschiedene Methoden:
ImageProvider.get(project, image)ImageProvider.get(project, image, width, height)ImageProvider.get(gameid, "filename")ImageProvider.get(gameid, "filename", width, height)
Angewendet auf unser Beispiel sieht das dann so aus:
ImageProvider.get(spiel, bilder[0]);Um das Bild zu speichern, kann dann unter anderem die Java-eigene Klasse ImageIO verwendet werden:
ImageIO.write(ImageProvider.get(spiel, bilder[0]), "jpg", new File("image.jpg"));Zusammenfassung
Abschließend hier noch der Source Code für ein funktionstüchtiges Beispiel:
public class ImageSample {
public static void main(String... args) {
Project spiel = null;
try {
spiel = Project.getAll(OrderedBy.RATING)[0];
} catch (JsonSyntaxException | IOException e1) {
System.out.println("Fehler beim Ausführen der Anfrage");
}
if (spiel != null) {
Image[] bilder = spiel.getImages();
if (bilder.length > 0)
try {
ImageIO.write(ImageProvider.get(spiel, bilder[0]),
bilder[0].getFileName().split("\\.")[1], new File(
bilder[0].getFileName()));
} catch (IOException e2) {
System.out
.println("Fehler beim Herunterladen oder Speichern des Bildes");
}
}
}
}