我正在开发一个处理非常大的图像(500 MB 到 + 1.0 GB)的 OSX 应用程序。我的应用程序需要加载图像(.psd 和 .tif)并允许用户对图像进行排序、对图像进行评分等。
我想加载图像的小缩略图。所以这就是我正在努力解决的问题:
我尝试以三种不同的方式生成缩略图,生成每个缩略图的最快时间约为 17 秒。
我正在寻找有关如何减少缩略图生成时间的建议。你们知道我可以使用的图书馆吗?也许是另一种加快速度的方法。
尝试:
我使用CGImage的缩略图生成方法
CGImageSourceCreateThumbnailAtIndex
来生成图像。我在我的 Cocoa 中使用了嵌入 AppleScript 并使用了以下命令
do shell script (\"/usr/bin/qlmanage -t -s640 \" & quoted form of file_Path & space & \" -o \" & quoted form of save_path
我使用从图像预览中抓取缩略图
QLThumbnailImageCreate
1 和 2 每张图像的第二代时间都在 17 左右。3 返回空白图像。我认为这与预览需要加载它有关。
我也尝试使用 GCD(Grand Central 调度)来加快速度,但似乎由于磁盘读取瓶颈,进程始终是串行的,不会并行执行。所以使用不同队列的多线程没有帮助(使用dispatch_async)。
值得一提的是,所有这些图像都存在于我的应用程序将读取的外部硬盘驱动器上。这个想法是在不需要移动文件的情况下做到这一点。
我再次使用 Objective-C 并开发 OSX 10.8。我希望也许有一个 C++ / C 库或比我自己找到的三个选项更快的东西。
任何帮助都非常感谢。
谢谢你。