资源管理器获取图像缩略图真的很快,它是如何工作的?

时间:2009-08-24 03:55:56

标签: c++ image thumbnails explorer

我正在使用资源管理器以缩略图模式查看图像。 获取每个图像的缩略图(bmp,jpg)非常快。

我使用以下代码为每张图片生成缩略图。然而它比探索者要慢得多,我如何编写一部分代码来生成缩略图与系统一样快和准确(下面的代码生成的缩略图有时在顶部和底部,或左右两侧都有黑带,I不知道为什么......)。或者我可以使用其功能来调用资源管理器的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.....
}

2 个答案:

答案 0 :(得分:1)

资源管理器可能正在使用Exif嵌入式jpg缩略图。

查看一个简单的Exif Image Viewer,确认您使用的图片包含嵌入的缩略图。

答案 1 :(得分:1)

对我来说,资源管理器生成的缩略图很慢。我自己的代码运行速度更快,可以生成缩略图。我遇到的问题是FindFirst / FindNext与Explorer相比较慢,因为它使用“文件对象”系统而不是“文件名”系统。我想找到快速代码来获取目录中的文件名。