Android 자르기 그림 aspectX aspecty outputX outputY 설정

4798 단어
쓸데없는 말 buduosh는 더 이상 말하지 않고 코드를 직접 올리면 다음은 내가 테스트한 결과이다.
Intent intent = new Intent("com.android.camera.action.CROP");
                //com.android.camera.action.CROP  action         
                intent.setDataAndType(uri, "image/*");
                //     
                intent.putExtra("crop", "true");
                //aspectX,aspectY,outputX,outputY   int ,    ,       1.6
                // aspectX aspectY       ,          aspectX aspectY    outputX,outputY ,     。
                //         8:5       ,            800:500
                intent.putExtra("aspectX", 800);
                intent.putExtra("aspectY", 500);
                // outputX outputY        
                //           360   
                intent.putExtra("outputX", 360);
                intent.putExtra("outputY", 225);
                //480      ,  440    
//                intent.putExtra("outputX", 480);
//                intent.putExtra("outputY", 300);
//                intent.putExtra("outputX", 440);
//                intent.putExtra("outputY", 275);
                intent.putExtra("return-data", true);
                startActivityForResult(intent, CROP_SMALL_PICTURE);

트림 특성 테이블을 첨부합니다.
추가 옵션
데이터 형식
묘사
crop
String
트림 신호 보내기
aspectX
int
X 방향의 축척
aspectY
int
Y 방향의 축척
outputX
int
클립 너비
outputY
int
클립 높이
scale
boolean
비율 유지 여부
return-data
boolean
Bitmap에서 데이터를 반환할지 여부
data
Parcelable
적절한 Bitmap 데이터
circleCrop
String
원형 재단 구역?
MediaStore.EXTRA_OUTPUT ("output")
URI
Uri를 해당file:///..., 코드 예 참조
outputFormat
String
출력 형식, 일반적으로 Bitmap 형식: Bitmap.CompressFormat.JPEG.toString()
noFaceDetection
boolean
얼굴 인식 기능을 취소할지 여부
[주의] 우리가 그림을 잘라낼 때 보통 우리는 속성을 설정할 때 비교적 작은 값, 예를 들어 intent만 설정할 수 있다.putExtra("outputX", 320);intent.putExtra("outputY", 320);커팅 후 그림의 사이즈를 너무 크게 설정할 수 없고 640까지 테스트를 거치면 렉 걸리는 현상이 나타난다. 왜일까?Intent의 데이터 영역에서 최대 전달되는 값의 크기가 약 1M이기 때문에 그림의 BITMAP는 1M을 넘으면 실패합니다.보통 우리는 프로필 사진만 설정할 수 있는데, 만약 우리가 비교적 큰 그림을 편집해서 표시하려고 한다면?어떻게 할까?
이 방법은return-data로false로 설정하여 데이터 영역에서 그림을 가져오지 않고 이 다리를 건너서 그림을 잘라낸 후 설정한 경로 디렉터리와 이름을 통해 이 그림을 단독으로 가져오면 완벽하게 보일 수 있습니다.return-data를false로 설정하지 않으면 기본적으로 데이터로 되돌아와 영상을 차단합니다.
return-data: 결과를 데이터에 저장해서 되돌려줍니다.onActivity Result에서 intent를 직접 호출합니다.getdata () 는 값을 얻을 수 있습니다.fase로 설정하면 데이터에 저장하지 않습니다.
MediaStore.EXTRA_OUTPUT: Intent의 데이터 영역에 저장하지 못하게 하기 때문에 그림을 저장할 곳이 있어야 합니다. 이 매개 변수는 저장 주소를 옮기는 것입니다.Value에 저장된 URI는 지정한 저장 주소입니다.

좋은 웹페이지 즐겨찾기