내 애플리케이션에서 사진을 Android 카메라로 캡처 한 다음 서버로 보내려고합니다. 이를 위해 클라이언트 소켓 프로그래밍을 사용합니다. 캡처 사진을 bytearray (byte [])로 변환 한 다음 서버로 보냅니다. 모든 일은 영원히 작동합니다.Android : 카메라로 캡처 한 원본 사진을 얻을 수 없음 (압축 사진 만 읽을 수 있음)
문제가 있습니다. 원본 사진을 서버로 보낼 수 없습니다. 미리보기 이미지는 Android 휴대 전화에서 전송됩니다. 그러나 카메라로 사진을 찍을 때 원본 사진이 갤러리에 있습니다.
내 원본 사진을 내 응용 프로그램에서 사용하려면 어떻게해야합니까?
내 코드 :
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG);
cameraIntent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(cameraIntent, "Select Picture"),
CAMERA_REQUEST);
그리고 onActivityResult를 방법에 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
// byte[] a = (byte[]) data.getExtras().getByteArray("data"); // I also use this but not work
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(CompressFormat.JPEG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
}
}
사진의 BitmapData에가 있지만 압축 된 사진 원본이 아닌. 사람들 중 일부는 이렇게 말합니다. 의 품질 필드를 변경하십시오. compress (CompressFormat.JPEG, 100, bos); 0에서 100 사이에 있지만 아무 것도 발생하지 않습니다.
- >> 카메라
에 의해 캡처 된 원본 사진을 얻을 수있는 또 다른 방법이있다 - 사진은 내 컴퓨터의 폴더에있는 경우 >>는 나는이 사진을 읽어 파일에 경로를 지정하여. ex- 파일 file = 새 파일 (c : \ newphoto \ image.jpg);. 사진의 이름과 위치를 알고 있기 때문에 안드로이드에서이 코드를 사용하여 원본 사진을 읽을 수 있습니까? 그렇다면 갤러리에서 사진을 읽을 경로는 무엇입니까? 경로를 다음과 같이 지정하면이 작업이 가능합니까? \ DCIM \ Camera \ photoName.jpg.
- >> 또는 내 현재 코드에서 일부 변경 필요하며 잘 작동합니까?