2011-09-13 26 views
3

サーフェイスビューを使用しているときにカメラの解像度を変更しようとしています。私はurlのような実装を使用しています。私のカメラの解像度は2592 x 1944ですが、カメラからバイト[]を取得してビットマップに変換すると、ビットマップの解像度は2048 x 1536になります。これを変更する方法はありますか?AndroidカメラSurfaceView。画像の解像度を変更するには?

答えて

2

カメラのパラメータを変更する必要があります。この場合はCamera.Parameters.setPictureSize()となります。

ここで基本的なワークフローがmCameraが、この場合、お使いのカメラのオブジェクトである

Camera.Parameters cp = mCamera.getParameters(); // get the current params 
cp.set...(); // change something 
mCamera.setParameters(cp); // write the params back 

です。
これは、Cameraclass documentationにも記載されています。手順2と3の下で入力します。

この機能で設定したすべての解像度がサポートされていることを確認してください。 Camera.Parameters.getSupportedPictureSizes()でデバイスでサポートされている解像度のリストを取得できます。

+0

私は1つのピクチャサイズ(クラスサイズ)を選択し、カメラでCamera.Parameters.setPictureSize()を設定しますが、撮影後にバイト配列を受け取り、ビットマップオプションのoutWidthとoutHeightにこのサイズを設定します。別の方法がありますか? – Ricardo

+0

あなたはbytearrayを受け取ります、はい。しかし、あなたはoutWidthをどういう意味ですか?バイト配列は圧縮されたJPEGです。ビットマップが必要な場合は、(おそらくすでに行ったように)ビットマップを解凍する必要があります。しかし、結果のサイズが自動的に得られます。ディメンション固有のものを設定する必要はありません。もう少し詳しく教えてもらえますか? –

+0

申し訳ありませんが、私は間違いを犯しました。ご協力ありがとうございます。 – Ricardo

関連する問題