
Originariamente inviata da
DamianoBaffoni
Nella documentazione c'è scritto che tramite la classe ImageReader è possibile estrarre la thumbnail tramite il metodo readThumbnail ma non funziona, o meglio, reader.getNumThumbnails(imageIndex) da sempre 0.
Sul ImageReader, readerSupportsThumbnails() ti restituisce true o false?
Con questo di test:
codice:
import java.util.*;
import javax.imageio.*;
import javax.imageio.spi.*;
public class Prova {
public static void main(String[] arg) {
Iterator<ImageReader> readerItr = ImageIO.getImageReadersByFormatName("jpg");
while (readerItr.hasNext()) {
ImageReader reader = readerItr.next();
ImageReaderSpi readerSpi = reader.getOriginatingProvider();
System.out.format("%s, %s: support thumbnails: %s",
readerSpi.getVendorName(), readerSpi.getVersion(),
reader.readerSupportsThumbnails());
}
}
}
a me su un JDK 7/Windows stampa una sola implementazione di reader per "jpg" (quella standard/predefinita del runtime):
Oracle Corporation, 0.5: support thumbnails: true
Quindi i thumbnails sono supportati.
P.S.: una cosa posso notarla subito dal tuo codice: model è un DefaultListModel che viene ricevuto dal costruttore. Da qualche parte nella tua applicazione è sicuramente assegnato ad un JList.
Nel doInBackground fai un model.set( .... ). Attenzione!! doInBackground non "gira" nel Event Dispatch Thread e siccome Swing non è thread-safe (e nemmeno i model lo sono di per sé), allora il tuo set è inappropriato lì in quel punto.