を使用してアプリケーションから写真を撮りたい
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, TAKE_PICTURE);
そしてそれをウェブサーバーに送信します。しかし、ウェブサーバーはそれを50 kb 以下のサイズの150x150 画像に圧縮するので、転送を送信するのに非常に多くの時間がかかるため、サイズ ~ 2 mbの3264x2448 画像を取得する必要はありません。最小サイズの画像を撮りたい。
カメラに特定のサイズの画像を要求する方法はありますか?
Camera API を使用して、そのプロパティを変更してみました。
private Camera mCamera;
Camera.Size pictureSize = getSmallestPictureSize(mCamera
.getParameters());
if (pictureSize != null) {
mCamera.getParameters().setPictureSize(pictureSize.width,
pictureSize.height);
}
private Camera.Size getSmallestPictureSize(Camera.Parameters parameters) {
Camera.Size result = null;
for (Camera.Size size : parameters.getSupportedPictureSizes()) {
if (result == null) {
result = size;
} else {
int resultArea = result.width * result.height;
int newArea = size.width * size.height;
if (newArea < resultArea) {
result = size;
}
}
}
return (result);
}
問題は、まだ大きな画像を取得していることです。しかし、それは実際の問題ではありません:
これにプレビューを使用すると、このようになります
ユーザーがプレビューを回転させたり、ズームイン/ズームアウトしたりすることを許可していません.
カスタム パラメータで実際のカメラ プレビューを使用する方法はありますか?