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 可能正在使用Exif嵌入的 jpg 缩略图。

查看一个简单的Exif 图像查看器,以确认您使用的图像包含嵌入的缩略图。

于 2009-08-24T09:51:43.583 回答
1

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

于 2009-09-05T14:50:28.130 回答