C# 佳能SDK图像处理示例

C# 佳能SDK图像处理示例,c#,vb.net,image-processing,canon-sdk,C#,Vb.net,Image Processing,Canon Sdk,我想在c#或VB.NET程序中使用canon EDSDK来查看cr2文件 我找到了关于如何控制相机的示例代码-示例: 但是关于打开文件,提取图像数据并显示它,或者将拇指或全尺寸图像保存为jpg,什么都没有 有人能告诉我一些这样的例子吗?多谢各位 注意-我有EDSDK2.12,我希望旧版本也能有所帮助 编辑:谢谢你的建议,它指向一个C库,可能会有帮助。。。虽然我不知道如何使用它,但我不确定如何在网络中使用它。我知道这个问题已经有一段时间没有被问到了,但它可能会帮助一些人。 要使用SDK处理佳能原

我想在c#或VB.NET程序中使用canon EDSDK来查看cr2文件

我找到了关于如何控制相机的示例代码-示例:

但是关于打开文件,提取图像数据并显示它,或者将拇指或全尺寸图像保存为jpg,什么都没有

有人能告诉我一些这样的例子吗?多谢各位

注意-我有EDSDK2.12,我希望旧版本也能有所帮助


编辑:谢谢你的建议,它指向一个C库,可能会有帮助。。。虽然我不知道如何使用它,但我不确定如何在网络中使用它。

我知道这个问题已经有一段时间没有被问到了,但它可能会帮助一些人。 要使用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);
当然,您不必从HD读取文件,但也可以使用从相机获得的图像参考

另一种在没有SDK的情况下获取预览图像的方法是读取CR2本身。它基本上只是一个Tiff文件,它存储一个jpg缩略图(160x120)和两个稍大一点的RGB图像。此网站提供了有关整个CR2格式的一些好信息:

亲切问候

可能的副本