我使用 C# EDSDK 为佳能相机创建了一个相机控制器应用程序。我可以将图像下载到主机 PC,但与佳能 EOS Utility 软件相比仍然需要很多时间。目前我正在大约 2.5 秒内下载 22 兆像素的 Jpg 图像。当我使用佳能软件时,只需不到一秒钟。对于 RAW 图像 (22MPixel),使用 Canons Utility 软件大约需要 2 到 3 秒,使用 SDK 大约需要 11 秒。
我在 EventHandler 中使用以下代码:
public void DownloadImage(DownloadItem item)
{
EDSDK.EdsDirectoryItemInfo dirInfo;
IntPtr streamRef;
Stopwatch timer = new Stopwatch();
timer.Start();
Error = EDSDK.EdsGetDirectoryItemInfo(item.ImageObjectPointer,
out dirInfo);
Error = EDSDK.EdsCreateFileStream(
item.FilePath,
EDSDK.EdsFileCreateDisposition.CreateAlways,
EDSDK.EdsAccess.ReadWrite,
out streamRef);
Error = EDSDK.EdsDownload(item.ImageObjectPointer, dirInfo.Size, streamRef);
//Tell the SDK we finished the download
Error = EDSDK.EdsDownloadComplete(item.ImageObjectPointer);
//Release Resources
Error = Release(streamRef);
Error = Release(item.ImageObjectPointer);
timer.Stop();
var ms = timer.ElapsedMilliseconds;
this.Log().DebugFormat("Download time for image {0}: \t{1}\t ms",
Path.GetFileName(item.FilePath),
ms.ToString());
}
有谁知道更快的图像下载程序?还是佳能在他们的软件中使用完全不同的例程?
在此先感谢您的帮助!