Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, TAKE_PICTURE);
를 사용하여 내 응용 프로그램에서 사진을 촬영하고 웹 서버에 보내려고합니다. 웹 서버가 150 × 150 이미지 크기 이하 50킬로바이트의를로 압축하기 때문에, 나는 그것을 보내는 시간의 지옥이 많이 걸리기 때문에 일부 3264 × 2448 이미지 사이즈 ~ 2메가바이트의를 취할 필요가 없습니다 이전. 최소 크기의 이미지를 찍고 싶습니다.
그래서 특정 크기의 이미지를 카메라에 요청하는 방법이 있습니까?
나는 그것의 속성을 카메라 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);
}
문제는 내가 여전히 큰 이미지를 얻을 수있다. 그러나 실제 문제가 아니에요 : 나는 이것에 대한 미리보기를 사용하는 경우는이
이 허용되지 않음처럼 사용자가 미리보기를 회전,
, 줌 인/아웃 등
에서 실제 카메라 미리보기를 맞춤 매개 변수와 함께 사용하는 방법이 있습니까?
[this] (https://github.com/commonsguy/cw-advandroid/blob/master/Camera/Picture/AndroidManifest.xml) commonsware 데모에 따라. 매니페스트에서 방향은 가로로 설정됩니다. 이렇게하면 가로 모드에서만 이미지를 찍을 수 있도록 제한되며, 세로 모드에서 이미지를 찍으면 90도 회전 이미지가 표시 될 수 있습니다. 그래서, 사용자가 카메라 미리보기를 바꿀 수있게하는 방법이 있습니까? –
설명서에 따르면 Java는 플랫폼에 독립적이며 안드로이드는 플랫폼에 독립적입니다. 실제로는 그렇지 않습니다. 고객/상사와의 계약에 따르면 버그없이 잘 작동하는 소프트웨어를 제작해야합니다. 비디오/오디오 물건 (매우) 플랫폼/장치 종속 : 테스트 및 8 장치에서 작동하지만 다음 2. 독립적 인 플랫폼의 신화와 문서화에 따르면 ... –