使用EDSDK时如何在C#中更改获取的Raw Image Size?

How to change the acquired Raw Image Size in C# when using the EDSDK?

我想获得MRaw 或SRaw。 例如:佳能 EOS 5D 具有以下原始尺寸:

(6) RAW: Approx. 22.10 Megapixels (5760 x 3840) 
(7) M-RAW: Approx. 10.50 Megapixels (3960 x 2640) 
(8) S-RAW: Approx. 5.50 Megapixels (2880 x 1920) 

这些可以在物理相机上设置。但我想在软件中设置这些。我的软件设置了 ISO 和快门速度,但我没有看到如何添加原始图像大小(也许是质量?)作为设置。或者我想念它。我正在查看 EDSDK 提供的少量文档。

似乎有一项:"EDSDK.PropID_ImageQuality" 允许从大号更改为中号等的想法。但是我的代码没有 'ImageQuality'.

的句柄

最新版本的EDSDK似乎添加了ImageQuality Enum,其中包括:

    EdsImageQuality_LR = 0x0064ff0f,    /* RAW */
    EdsImageQuality_MR = 0x0164ff0f,    /* MRAW(SRAW1) */
    EdsImageQuality_SR = 0x0264ff0f,    /* SRAW(SRAW2) */

...这只是一个更大枚举的示例...但我还没有弄清楚如何使用这些不同的值属性。它们不在原始 SDK 中。

注意:佳能EOS Utility在不同格式下拍摄都没有问题。

这有效:

uint setError = EDSDK.EdsSetPropertyData(camera, EDSDK.PropID_ImageQuality, 0, sizeof(UInt32), EDSDK.ImageQuality.EdsImageQuality_MR);

我需要设置此 属性 数据。我在网上的任何地方都找不到这个。我只是偶然发现了它,它做到了。所有 EdsSetPropertyData 命令 return 一个错误代码,如果它们不起作用。我只是在代码中遵循了其他几个格式。

大概我也可以将它设置为其他格式,而不仅仅是 EdsImageQuality_MR。但这回答了我的问题...