1

我正在尝试使用 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都在系统路径上...

谢谢你。

4

1 回答 1

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 函数。

于 2014-04-14T14:37:38.797 回答