0

私の現在の検索から、Android カメラの意図は pictureSize を指定できません。私のアプリは高速である必要があるため、大きなサイズの画像を SD カードに保存してから、小さなサイズのビットマップにロードしたくありません。時間がかかると思います。さらに、カラー ビットマップではなくグレー スケール イメージが必要です。それらを変換する方法は知っていますが、やはり時間がかかります。

指定サイズで撮影し、YUVデータのY部分(グレースケール)をメモリ上で直接加工する予定です。

ということは、カメラ API を使用して独自のカメラ アプリを作成する必要があるということですか?

良い例はありますか?これまでチェックした多くの例では、オートフォーカスを考慮していないことがよくありました。XML ファイルに機能を追加します。

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

カメラ パラメータにオート フォーカス モードを追加します。

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 

しかし、うまくいきません。そこで、カメラのボタンを押す直前にオートフォーカス コマンドを追加します。

preview.camera.autoFocus(myAutoFocusCallback);
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);

ただし、オートフォーカスには時間がかかり、プレビューが明確になるまで、写真の撮影が実行されました。さらに、カメラボタンを押さなくてもオートフォーカスしたい。オートフォーカスをうまく入れるにはどうすればよいですか?

良い例はありますか?ありがとう。

4

1 に答える 1

2

Androidデベロッパーガイドには、カメラアプリの作成に関するチュートリアルがあります:http://developer.android.com/guide/topics/media/camera.html#custom-camera

マニフェストにカメラとcamera.autofocus機能の両方を追加する必要はありません。後者は前者を意味しますが、実際には問題ではありません。

FOCUS_MODE_AUTOは、カメラが継続的にフォーカスすることを意味するのではなく、コールバック関数によって(手動フォーカスの代わりに)ある時点でオートフォーカスを使用することを意味します。カメラを単独で焦点を合わせたい場合は、FOCUS_MODE_CONTINUOUS_PICTUREが必要です。ドキュメントで説明されています。

カメラの焦点を合わせる前に写真を撮る場合は、次のようにautoFocusCallback内からtakePicture()を呼び出してみてください。

private AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback() {
    @Override
    public void onAutoFocus(boolean success, Camera camera) {
        if (success) {
                camera.takePicture(shutterCallback, rawCallback, jpegCallback);
            }
    }
};
于 2013-03-07T09:44:28.983 に答える