2013-06-20 4 views
1

canon sdk (canon_edsdk-2.12)를 사용하여 cr2 이미지를 읽으려고합니다.edsdk로 cr2를로드하는 중 오류가 발생했습니다.

dll을 올바르게로드하는 것처럼 보이지만 실제 이미지를 가져 오려고하면 오류가 발생합니다.

샘플 프로그램을 실행하여 이것이 내 것과 다른 점을 확인했지만 동일한 문제가 발생합니다.

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

- void CRAWDevelopDlg::LoadImage() 기능에, http://read.pudn.com/downloads107/sourcecode/graph/texture_mapping/440409/RAWDevelop/RAWDevelopDlg.cpp__.htm

내 오류, 주어진 소스에 : 웹에서 문제를 찾기 위해 노력

, 나는 샘플의 실제 소스 코드를 발견 위의 (481 행의) 페이지는 내가 사용하는 것과 같은 방법이며 오류 코드 35 (0 대신)와 동일한 오류가 발생합니다.

오류가

#define EDS_ERR_FILE_OPEN_ERROR       0x00000023L 

그래서 ... 파일에 문제가있을 수있을 것 같다? 필자는 최신 카메라를 비롯한 다양한 버전으로 촬영 한 파일을 실험했습니다 ... Photoshop에서 파일이 열립니다 ... 그리고 데모는 헤더 정보를 표시합니다. 그래서 뭔가를 볼 수 있습니다.

나는 무엇이 있습니까?

필요한 모든 dll은 시스템 경로에 있습니다.

감사합니다.

+1

십진수 35는 0x21이 아닌 0x23입니다. 실제로 35 일 경우 EDS_ERR_FILE_OPEN_ERROR = 0x23L이 표시됩니다. – user2246051

+0

맞아 ... 얼마나 바보 야? 고맙습니다. 내가 시도한 파일은 유효한 파일이어야하지만 Photoshop에서 열 수 있습니다 ... 다른 카메라로 촬영 한 cr2 파일을 실험했습니다. (게시물을 업데이트합니다) – Thalia

답변

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 함수를 사용하십시오.