私は、エクスプローラを使用してサムネイルモードで画像を表示しています。 各画像(bmp、jpg)のサムネイルを取得するのは本当に速いです。エクスプローラはイメージのサムネイルを非常に速く取得できますが、どのように機能しますか?
次のコードを使用して、各画像のサムネイルを生成しています。しかし、それはエクスプローラよりもはるかに遅いです。システムと正確な速さでサムネイルを生成するコードの一部を書くにはどうすればいいですか?(上のコードと下のコード、理由を知らない...)。または、その機能を使用してサムネイルを生成するためのエクスプローラのAPIを呼び出すことはできますか?
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.....
}
まず、エクスプローラにはサムネイルキャッシュがあります。また、最初にディレクトリを読み込んだときに、ワーカースレッドなどでサムネイルが生成されている可能性があります。 –
私は各フォルダストアの画像サムネイルでthumb.dbを知っていますが、削除した場合、エクスプローラは本当に速いサムネイルを再生成します – user25749
複製のhttp://stackoverflow.com/questions/1316170/having-an-image-file-バッファ・イン・メモリで最も速い方法であることを実現しています。 –