Class ImageLoader
Bilder können von verschiedenen Quellen als Image geladen werden. Die
Objekte werden in einem internen Cache gespeichert und nachfolgende Versuche,
dieselbe Quelle zu laden, werden aus dem Cache bedient.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic voidAktiviert den Cache.static voidLeer den Cache und löschte alle bisher gespeicherten Bilder.static BufferedImageErstellt einBufferedImagemit demselben Inhalt wie das angegebeneImage.static BufferedImagecopyImage(BufferedImage image) Erstellt eine exakte Kopie des angegebenen Bildes als neues Objekt.static BufferedImagecreateImage(int width, int height) Erstellt ein neues, leeresBufferedImagepassend für dieses Anzeigegerät.static BufferedImagecreateImage(int width, int height, int type) Erstellt ein neues, leeresBufferedImagepassend für dieses Anzeigegerät.static voidDeaktiviert den Cache.static voiddisableCache(String name) Deaktiviert den Cache für die angegebene Quelle.static voidinvalidateCache(String name) Entfernt das Bild zum angegebenen Namen aus dem Cache.static booleanPrüft, ob zum angegebenen Namen ein Bild im Cache gespeichert ist.static BufferedImageLädt ein Bild von der angegebenen Quellesource.static BufferedImageLädt ein Bild von der angegebenen Quelle source und gibt das Bild zurück odernull, wenn das Bild nicht geladen werden konnte.static voidpreloadImage(String name, BufferedImage img) Speichert das angegebene Bild unter dem angegebenen Namen im Cache.static booleanpreloadImage(String name, String source) Lädt ein Bild aus der angegebenen Quelle unter dem angegebenen Namen in den Cache.static voidsaveImage(BufferedImage image, File file) Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.static voidsaveImage(BufferedImage image, File file, boolean overwriteIfExists) Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.static voidSpeichert das angegebene Bild in der angegebenen Datei auf der Festplatte.static voidSpeichert das angegebene Bild in der angegebenen Datei auf der Festplatte.
-
Field Details
-
caching
public static boolean caching
-
-
Method Details
-
loadImage
Lädt ein Bild von der angegebenen Quellesource.Die Bilddatei wird nach den Regeln von
ResourceStreamProvider.getInputStream(String)gesucht und geöffnet. Tritt dabei ein Fehler auf oder konnte keine passende Datei gefunden werden, wirdnullzurückgegeben.Ist der
Cache aktiviertund ein Bild mit der angegebenen Quelle schon vorhanden, wird das gespeicherte Bild zurückgegeben.- Parameters:
source-- Returns:
- See Also:
-
loadImage
Lädt ein Bild von der angegebenen Quelle source und gibt das Bild zurück odernull, wenn das Bild nicht geladen werden konnte. Ist ein Bild mit der angegebenen Quelle im Cache, wird das gespeicherte Bild zurückgegeben. Dies kann mitcaching = falseverhindert werden.Wurde das Caching global deaktiviert, kann mit
caching = truedas Bild trotzdem aus dem Cache geladen werden, wenn es vorhanden ist.- Parameters:
source- Die Quelle des Bildes.caching- Ob das Bild (falls vorhanden) aus dem Zwischenspeicher geladen werden soll.- Returns:
-
preloadImage
Lädt ein Bild aus der angegebenen Quelle unter dem angegebenen Namen in den Cache.Der
namekann beliebig gewählt werden. Existiert unter dem Namen schon ein Bild im Zwischenspeicher, wird dieses überschrieben.Wenn der Cache aktiviert ist, werden zukünftige Aufrufe von
loadImage(String)mitnameals Quelle das gespeicherte Bild zurückgeben.- Parameters:
name- Name des Bildes im Zwischenspeicher.source- Quelle, aus dem das Bild geladen werden soll.- Returns:
true, wenn das Bild erfolgreich geladen wurde,falsesonst.- See Also:
-
preloadImage
Speichert das angegebene Bild unter dem angegebenen Namen im Cache.Existiert zu
nameschon ein Bild im Zwischenspeicher (ImageLoader.isCached(name) == true), dann wird dieses überschrieben.Wenn der Cache aktiviert ist, werden zukünftige Aufrufe von
loadImage(String)mitnameals Quelle das gespeicherte Bild zurückgeben.- Parameters:
name- Name des Bildes im Zwischenspeicher.img- ZU speicherndes Bild.
-
isCached
Prüft, ob zum angegebenen Namen ein Bild im Cache gespeichert ist.- Parameters:
name- Name des Bildes im Cache.- Returns:
true, wenn es ein Bild zum Namen gibt, sonstfalse.
-
invalidateCache
Entfernt das Bild zum angegebenen Namen aus dem Cache. Gibt es zum Namen kein Bild im Zwischenspeicher, dann passiert nichts.- Parameters:
name- Name des Bildes im Cache.
-
disableCache
Deaktiviert den Cache für die angegebene Quelle.Selbst wenn der
Cache aktiviertist, wird das Bild zur angegebenen Quelle niemals zwischengespeichert und immer neu geladen.- Parameters:
name- Die Quelle des Bildes.
-
clearCache
public static void clearCache()Leer den Cache und löschte alle bisher gespeicherten Bilder.Auch vorher mit
disableCache(String)verhinderte Caches werden gelöscht und müssen neu gesetzt werden. -
activateCache
public static void activateCache()Aktiviert den Cache.Der Cache ist ein Zwischenspeicher für geladene Bilder. Wenn er aktiviert ist (Standard), dann werden mit dem
ImageLoadergeladene Bilder im Zwischenspeicher abgelegt. Bei jedem folgenden laden desselben Bildes (bzw. eines Bildes mit derselbensource), wird das gespeicherte Bild zurückgegeben und nicht komplett neu geladen.Wichtig: Bildreferenzen, die aus dem Cache geladen werden, verweisen alle auf dasselbe Objekt. Änderungen schlagen sich daher in allen anderen Versionen des Bildes nieder (inklusive dem Bild im Zwischenspeicher). Für Änderungen sollte daher immer
eine Kopiedes Bildes erstellt werden:BufferedImage originalImage = ImageLoader.loadImage("assets/image.gif"); BufferedImage copiedImage = ImageLoader.copyImage(originalImage);Alternativ kann der Cache umgangen werden, indem
loadImage(String, boolean)verwendet wird. -
deactivateCache
public static void deactivateCache()Deaktiviert den Cache.- See Also:
-
copyImage
Erstellt eine exakte Kopie des angegebenen Bildes als neues Objekt.Die Methode ist hilfreich, wenn ein Bild aus dem
Cachegeladen wurde und dann verändert werden soll, ohne den Cache (oder andere Referenzen auf das Bild) zu verändern.- Parameters:
image- Das Originalbild.- Returns:
- Eine exakte Kopie des Originals.
-
copyImage
Erstellt einBufferedImagemit demselben Inhalt wie das angegebeneImage.- Parameters:
image- Das Originalbild.- Returns:
- Eine exakte Kopie des Originals.
-
saveImage
Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.- Parameters:
image- Das zu speichernde Bild. Falls die Datei schon existiert, wird sie überschrieben.file- Die Zieldatei.- Throws:
NullPointerException- Fallsimageoderfilenullist.IOException- Falls es einen Fehler beim Speichern gab.
-
saveImage
Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.- Parameters:
image- Das zu speichernde Bild. Falls die Datei schon existiert, wird sie überschrieben.file- Die Zieldatei.overwriteIfExists- Beitruewird eine vorhandene Datei überschrieben, beifalsewird eineIOExceptiongeworfen, wenn die Datei schon existiert.- Throws:
NullPointerException- Fallsimageoderfilenullist.IOException- Falls es einen Fehler beim Speichern gab.
-
saveImage
Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.- Parameters:
image- Das zu speichernde Bild. Falls die Datei schon existiert, wird sie überschrieben.file- Die Zieldatei.- Throws:
NullPointerException- Fallsimageoderfilenullist.IOException- Falls es einen Fehler beim Speichern gab.
-
saveImage
public static void saveImage(BufferedImage image, File file, boolean overwriteIfExists) throws IOException Speichert das angegebene Bild in der angegebenen Datei auf der Festplatte.- Parameters:
image- Das zu speichernde Bild. Falls die Datei schon existiert, wird sie überschrieben.file- Die Zieldatei.overwriteIfExists- Beitruewird eine vorhandene Datei überschrieben, beifalsewird eineIOExceptiongeworfen, wenn die Datei schon existiert.- Throws:
NullPointerException- Fallsimageoderfilenullist.IOException- Falls es einen Fehler beim Speichern gab.
-
createImage
Erstellt ein neues, leeresBufferedImagepassend für dieses Anzeigegerät.- Parameters:
width- Breite des leeren Bildes.height- Höhe des leeren Bildes.- Returns:
- Ein neues, leeres Bild.
-
createImage
Erstellt ein neues, leeresBufferedImagepassend für dieses Anzeigegerät.- Parameters:
width- Breite des neuen Bildes.height- Höhe des neuen Bildes.type-Typdes neuen Bildes.- Returns:
- Ein neues, leeres Bild.
-