被写体の周りが暗い場合、カメラ撮影時にフラッシュを炊いて撮影する事があります。
本記事ではPhotoCameraクラスのフラッシュモードについての説明と設定の仕方について記載しております。
フラッシュモードの定義
Windows Phone OS 7.1で定義されているフラッシュモードは下記の通りです。
フラッシュモード | 説明 |
---|---|
FlashMode.On | フラッシュは常にON |
FlashMode.Auto | 自動発光モード |
FlashMode.Off | フラッシュは常にOFF |
FlashMode.RedEyeReduction | 赤目補正モード |
フラッシュモードがFlashMode.On、FlashMode.RedEyeReductionの場合、必ずフラッシュが発光します。FlashMode.Autoの場合にWindows Phone OSがフラッシュをさせるかどうかを判定し、必要であればカメラ撮影時にフラッシュが発光します。FlashMode.Offの場合フラッシュは発光しません。
フラッシュモードを設定する
上記の表の通り、定義としてはフラッシュモードが4つありますが、それぞれのWindows Phone端末でハードウェア的にサポートしていない可能性があります。
そこでまずPhotoCamera.IsFlashModeSupportedメソッドを使用して、現在のカメラでそのフラッシュモードが使用出来るのかを判定し、使用可能であればフラッシュモードの設定を変更するようにします。
// フラッシュモードの設定を行う // カメラが赤目補正モードに対応しているか判定する if (camera.IsFlashModeSupported(FlashMode.RedEyeReduction)) { camera.FlashMode = FlashMode.RedEyeReduction; }
おまけ
余談ですが、カメラのフラッシュを懐中電灯代わりに使用しているアプリケーションが公開されているのをMarketplaceにて発見しました。VideoSourceを設定せずプレビューを非表示の状態でフラッシュモードを常にONにさせることで実現させてそうです。
// フラッシュを常に発光させる
camera.FlashMode = FlashMode.On;
フラッシュは静止画撮影時に一瞬発光させるものである為、発光パーツの消耗や消費電力的にフラッシュを付けっぱなしにするのは、あまりおススメ出来ませんが面白いアイディアですね。