Hallo,
ich möchte in einer Anwendung alle Bilder eines Verzeichnisses als Thumbnails darstellen. Ähnlich der Miniaturvorschau des Windows Dateiexplorers.
Dies funktioniert zwar mit folgendem Code:
Für jedes Bild im Verzeichniss erstelle ich jetzt dieses ImagePanel und füge es einem Panel mit GridLayout hinzu.
Nur leider ist das Performancemäßig sehr bescheiden. Gerade wenn viele große Bilder aus der Digitalkamera dargestellt werden sollen. Muss man ewig warten bis die Anwendung alle Bilder als Thumbnail scaliert und dann darstellt.
Kennt jemand für so einen Anwendungsfall performantere Methoden?
Gruß
jogep
ich möchte in einer Anwendung alle Bilder eines Verzeichnisses als Thumbnails darstellen. Ähnlich der Miniaturvorschau des Windows Dateiexplorers.
Dies funktioniert zwar mit folgendem Code:
Code:
public class ImagePanel extends AbstractButton
{
private Image scale;
public ImagePanel(File ii)
{
FileImageInputStream fiis = new FileImageInputStream(file);
BufferedImage bimage = ImageIO.read(fiis);
int w = bimage.getWidth(null);
int h = bimage.getHeight(null);
this.scale = bimage.getScaledInstance(width, heigth, Image.SCALE_DEFAULT);
}
public void paintComponent (Graphics g)
{
g.drawImage(scale,0,0,null);
}
}
Für jedes Bild im Verzeichniss erstelle ich jetzt dieses ImagePanel und füge es einem Panel mit GridLayout hinzu.
Nur leider ist das Performancemäßig sehr bescheiden. Gerade wenn viele große Bilder aus der Digitalkamera dargestellt werden sollen. Muss man ewig warten bis die Anwendung alle Bilder als Thumbnail scaliert und dann darstellt.
Kennt jemand für so einen Anwendungsfall performantere Methoden?
Gruß
jogep