我知道這已經有一段時間了,因爲這個問題已經被問到了,但它仍然可以幫助某人。 要處理佳能RAW文件與你必須做這個SDK:
uint err;
//Create input stream
IntPtr inStream;
err = EDSDK.EdsCreateFileStream("Test.CR2", EDSDK.EdsFileCreateDisposition.OpenExisting, EDSDK.EdsAccess.Read, out inStream);
//Create image reference
IntPtr imgRef;
err = EDSDK.EdsCreateImageRef(inStream, out imgRef);
//Set properties
err = EDSDK.EdsSetPropertyData(imgRef, EDSDK.PropID_WhiteBalance, 0, 4, EDSDK.WhiteBalance_Cloudy);
//TODO: set any imageRef compatible property you need here.
//Create output stream
IntPtr outStream;
err = EDSDK.EdsCreateFileStream("TestOut.jpg", EDSDK.EdsFileCreateDisposition.CreateAlways, EDSDK.EdsAccess.Write, out outStream);
//Get image info
EDSDK.EdsImageInfo info;
err = EDSDK.EdsGetImageInfo(imgRef, EDSDK.EdsImageSource.FullView, out info);
//Set image settings
EDSDK.EdsSaveImageSetting set = new EDSDK.EdsSaveImageSetting();
set.JPEGQuality = 9;
//Save image
err = EDSDK.EdsSaveImage(imgRef, EDSDK.EdsTargetImageType.Jpeg, set, outStream);
//Release data
EDSDK.EdsRelease(imgRef);
EDSDK.EdsRelease(inStream);
EDSDK.EdsRelease(outStream);
當然你不必來讀取高清文件,但也可以使用你的相機有一個形象的參考。
在沒有SDK的情況下獲取預覽圖像的另一種方法是讀出CR2本身。它基本上只是一個Tiff文件,它存儲了一個jpg縮略圖(160x120)和兩個更大的RGB圖像。該網站在這裏提供了對整個CR2格式一些有用的信息:http://lclevy.free.fr/cr2/
親切的問候的[在.NET中加載佳能.CR2文件]
可能重複(http://stackoverflow.com/questions/4111939/loading -canon-CR文件,在網) – Jason