3
サーフェイスビューを使用しているときにカメラの解像度を変更しようとしています。私はurlのような実装を使用しています。私のカメラの解像度は2592 x 1944ですが、カメラからバイト[]を取得してビットマップに変換すると、ビットマップの解像度は2048 x 1536になります。これを変更する方法はありますか?AndroidカメラSurfaceView。画像の解像度を変更するには?
サーフェイスビューを使用しているときにカメラの解像度を変更しようとしています。私はurlのような実装を使用しています。私のカメラの解像度は2592 x 1944ですが、カメラからバイト[]を取得してビットマップに変換すると、ビットマップの解像度は2048 x 1536になります。これを変更する方法はありますか?AndroidカメラSurfaceView。画像の解像度を変更するには?
カメラのパラメータを変更する必要があります。この場合はCamera.Parameters.setPictureSize()
となります。
ここで基本的なワークフローがmCameraが、この場合、お使いのカメラのオブジェクトである
Camera.Parameters cp = mCamera.getParameters(); // get the current params
cp.set...(); // change something
mCamera.setParameters(cp); // write the params back
です。
これは、Camera
class documentationにも記載されています。手順2と3の下で入力します。
この機能で設定したすべての解像度がサポートされていることを確認してください。 Camera.Parameters.getSupportedPictureSizes()
でデバイスでサポートされている解像度のリストを取得できます。
私は1つのピクチャサイズ(クラスサイズ)を選択し、カメラでCamera.Parameters.setPictureSize()を設定しますが、撮影後にバイト配列を受け取り、ビットマップオプションのoutWidthとoutHeightにこのサイズを設定します。別の方法がありますか? – Ricardo
あなたはbytearrayを受け取ります、はい。しかし、あなたはoutWidthをどういう意味ですか?バイト配列は圧縮されたJPEGです。ビットマップが必要な場合は、(おそらくすでに行ったように)ビットマップを解凍する必要があります。しかし、結果のサイズが自動的に得られます。ディメンション固有のものを設定する必要はありません。もう少し詳しく教えてもらえますか? –
申し訳ありませんが、私は間違いを犯しました。ご協力ありがとうございます。 – Ricardo