2

エクスプローラーを使用してサムネイルモードで画像を表示しています。各画像(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.....
}
4

2 に答える 2

1

私にとって、Explorerは非常に遅いサムネイルを生成します。私自身のコードは、サムネイルを生成するためにはるかに高速に実行されます。私が遭遇した問題は、FindFirst / FindNextが「ファイル名」システムではなく「ファイルオブジェクト」システムを使用しているため、Explorerに比べて遅いということです。ディレクトリ内のファイル名を取得するための高速コードを見つけたいと思います。

于 2009-09-05T14:50:28.130 に答える
1

エクスプローラーは、Exifが埋め込まれた jpg サムネイルを使用している可能性があります。

簡単なExif Image Viewerを見て、使用している画像にサムネイルが埋め込まれていることを確認してください。

于 2009-08-24T09:51:43.583 に答える