1
여기에 코드를 게시합니다. 먼저 캡처 한 이미지를 로컬 디렉토리에 저장하고 디렉토리 및 자르기에서 가져옵니다. 그 이미지를 캡처하고 즉시 저장해야합니다. 캡처 된 이미지를 번들/의도 추가로 저장 한 다음 자르기 기능을 호출 할 수 있습니까?외부 또는 내부 저장 장치에 저장하지 않고 사진을 찍고 자르기가 가능합니까?
camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory()+File.separator + "img.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, 1);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1){
File file = new File(Environment.getExternalStorageDirectory()+File.separator + "img.jpg");
try {
cropCapturedImage(Uri.fromFile(file));
}
catch(ActivityNotFoundException aNFE){
String errorMessage = "Sorry - your device doesn't support the crop action!";
Toast toast = Toast.makeText(getContext(), errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
if(requestCode==2){
Bundle extras = data.getExtras();
Bitmap thePic = extras.getParcelable("data");
proofImage.setImageBitmap(thePic);
}
}
public void cropCapturedImage(Uri picUri){
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(picUri, "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, 2);
}
[Android에는'CROP'' Intent']이 없습니다 (https://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intent.html). 많은 [안드로이드에서 사용할 수있는 이미지 자르기 라이브러리] (https://android-arsenal.com/tag/45)가 있습니다. 하나를 사용하십시오. – CommonsWare
자르기 라이브러리가 필요하지 않습니다. 나는 이미지를 저장하지 않고 자르고 싶다. 자른 후에 이미지를 저장하고 싶다. 어떤 생각? – BraveHeart
"자르기 라이브러리가 필요하지 않습니다."- 이미지를 자르려면 자르기 라이브러리가 필요하거나 자르기 라이브러리를 직접 작성해야합니다. 수천 개의 장치 모델에 걸쳐 약 20 억 개의 안드로이드 장치가 있습니다. 누구도'com.android.camera.action.CROP'에 대한 지원을 할 필요가 없으며 메모리에서 자르기위한 몇 가지 방법을 지원해야하는 소수의 지원도 없습니다. – CommonsWare