1

Using LiveView on EOS is fun and helps getting objects in focus (in case of objectives which do not offer autofocus). Magnification of the LiveView image (stream) really helps focusing.

On camera site, you may magnify that LiveView image 5x and 10x using the button with magnifying glass icon. That works well for my 600D.

Programming using EDSDK I got a problem: It is possible to set the 5x zoom mode for LiveView programmatically. But I did not succeed for 10x mode.

Did anyone succeed in doing zoomed LiveView and zoom that LiveView image more than 5x ?

For successful 5x LiveView zoom I used following code for my 600D:

// Start LiveView wait for the stream apearing on the screen and then do:

_iZoomStage= 5;

bool Success=_CameraHandler.SetSetting(EDSDK.PropID_Evf_Zoom,(UInt32) _iZoomStage);

That works fine, BUT: If you try to get higher zoom factors that fails. Success is returned true, but no effect is visible on screen. If you do LiveView zooming on the camera itself 10x works fine pressing the "magnifier" button. But programmatically I did not succeed in values greater than 5.

Any idea to that topic?

4

2 に答える 2

1

私は同じ問題に遭遇しました(5D Mark IVで)-実際には5倍ズームのみが可能であり、10倍ズームの場合、返されたビットマップを自分でズームする必要があります。

ただし、これはバグではないようですが、非常によく文書化されていない機能です (つまり、まったく文書化されていません)。SDK は実際に、ソフトウェア ズームを行う必要があることを示唆する追加データを提供し、正確な座標も提供します。だからこれは私がそれを理解する方法です:

解像度が 1000 x 1000 ピクセルのセンサーがあり、中央を 10 倍に拡大したいとします。次に、これは私のテストで起こります:

  • を読み取るとkEdsPropID_Evf_ZoomRect、位置 450:450 とサイズ 100x100 が返されます - すべて期待どおりです。
  • リターンを読むkEdsPropID_Evf_ZoomPosition450:450 - 予想通り。
  • しかし、200 x 200 ピクセルのビットマップが表示されます。これは x5 ズーム用であるため、「正しくありません」.
  • しかし、を読むkEdsPropID_Evf_ImagePositionことで、このビットマップが実際にどこにあるのかがわかります。これは 400:400 の位置を返すため、返されたビットマップの最終的なトリミングと拡大を計算するために使用できます。

したがって、user3856307 のコードは機能するはずですが、カメラの制限 (32 で割り切れる位置にビットマップを返すなど) がある可能性があるためkEdsPropID_Evf_ImagePosition、私の意見では、を組み込むとより正確な結果が得られるはずです。

于 2017-02-19T21:09:10.467 に答える