web-dev-qa-db-ja.com

Androidのカメラでカスタム画像サイズをキャプチャする方法は?

Androidで正方形の画像をキャプチャする方法は? Androidのインテントを介してCameraを呼び出して正方形の画像(300x300ピクセルなど)をキャプチャしたいのですが、どうすればよいですか?

15

編集:これはAPIレベル21以降非推奨です。

Camera.Sizeネストされたクラスを使用する

http://developer.Android.com/reference/Android/hardware/Camera.Size.html

Androidリファレンスから:

http://developer.Android.com/reference/Android/hardware/Camera.html

クラスの概要

Cameraクラスは、画像キャプチャ設定の設定、プレビューの開始/停止、写真のスナップ、およびビデオのエンコード用のフレームの取得に使用されます。このクラスは、実際のカメラハードウェアを管理するカメラサービスのクライアントです。

サイズがカメラでサポートされていることを確認してください(おそらくサポートされていません)。そうでない場合は、最も近い解像度で写真を撮り、トリミングするか、サイズを変更します。

Camera myCamera = Camera.open(0);
List<Camera.Size> sizes = myCamera.getPArameters().getSupportedPictureSizes();

カメラの意図について学ぶには、SOですでに次の質問を確認してください。

Androidカメラの意図

カメラインテントAndroid

8
Aleadam

なぜ誰もこのようなことを言わなかったのですか?

Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, xStart, yStart, 300, 300);

ここで、sourceBitmapはカメラからの元のキャプチャであり、トリミングが開始される場所からxStartおよびyStartの場所です。結果の左上隅にxStartyStartが表示されます。

5
Ewoks