J'utilise l'explorateur pour voir l'image en mode miniature. Il est vraiment rapide d'obtenir une vignette de chaque image (bmp, jpg). J'utilise le code suivant pour générer des vignettes pour chaque image. Cependant, il est beaucoup plus lent que l'explorateur, Comment puis-je écrire une partie du code pour générer des vignettes aussi vite que le système et précis (thumbnail généré par le code suivant ont parfois une bande noire en haut et en bas, ou sur le côté gauche, Je ne sais pas pourquoi ...). Ou puis-je imaginer l'API de l'explorateur pour générer une miniature en utilisant sa fonction?explorer obtenir la vignette de l'image très vite, comment ça marche?
Bitmap sourceImg(xxx);
int nSize = sourceImg.GetPropertyItemSize(PropertyTagThumbnailData);
if(nSize > 0)
{
PropertyItem * pItem = (PropertyItem*)malloc(nSize);
if (pItem != NULL)
{
sourceImg.GetPropertyItem(PropertyTagThumbnailData, nSize, pItem);
}
GenerateThumbnail from pItem.....
}
Pour commencer, l'explorateur a probablement un cache de vignettes, et génère probablement des vignettes dans un thread de travail ou quelque chose quand vous chargez le répertoire pour la première fois. –
Je sais thumb.db dans chaque dossier stocker des vignettes d'image, cependant, si je le supprime, l'explorateur va régénérer les vignettes très rapidement – user25749
en double de http://stackoverflow.com/questions/1316170/having-an-image-file- buffer-in-memory-comment-est-le-moyen-le-plus-rapide-de-créer-son-thum? –