使用edsdk加载cr2时出错

时间:2013-06-20 19:04:43

标签: c++ error-code edsdk

我正在尝试使用canon sdk(canon_edsdk-2.12)读取cr2图像。

我似乎正在正确加载dll,但是当我尝试获取实际图像时,我收到错误。

我尝试运行示例程序,看看它与我的不同,但同样的事情发生了。

尝试在网上查找问题,我找到了示例的实际源代码:http://read.pudn.com/downloads107/sourcecode/graph/texture_mapping/440409/RAWDevelop/RAWDevelopDlg.cpp__.htm

我的错误,在给定的来源上,位于void CRAWDevelopDlg::LoadImage()函数 -

err = EdsGetImage( m_ImageRef , source , kEdsTargetImageType_RGB , rect , size , DstStreamRef );   
if( err == EDS_ERR_OK ) {...}
else   
{   
   AfxMessageBox("The error occurred with the EdsGetImage function.");   
} 

以上(在页面上的第481行)与我使用的方法相同,我得到相同的错误 - 错误代码为35(而不是0)。

错误似乎是

#define EDS_ERR_FILE_OPEN_ERROR                          0x00000023L

那么...文件可能有问题吗?我试验了不同版本的文件,包括最新的相机......文件在Photoshop中打开......演示确实显示了标题信息,因为它给出了错误。所以它可以看到一些东西。

我错过了什么吗?

所有必需的dll都在系统路径上......

谢谢。

1 个答案:

答案 0 :(得分:0)

旧的问题,仍然可以帮助某人:

要使用SDK打开原始文件,您需要调用这些函数(当然,您应该检查错误):

EdsStreamRef stream = NULL;
EdsImageRef imgRef = NULL;
EdsCreateFileStream("filename", kEdsFile_OpenExisting, kEdsAccess_Read, &stream);
EdsCreateImageRef(stream, &imgRef);
EdsRelease(stream);

然后您可以使用imgRef设置和获取属性。

要将图像保存为jpg / tiff / RGB图像,请使用EdsSaveImage函数。