인터넷에 찾아보니 대부분 갤러리나 카메라에서 이미지를 호출해서 사용자가 원하는 사이즈로 조절 후
크롭하는 예제들만 있는데, 저같은 경우에는 앱 절반이상의 영역이 동영상이 나옵니다.
1280x720 영역 중, 880x720이 영상이 나옵니다. 일시정지 하면 비트맵값을 따로 저장해서 축소/확대
와 같은 줌인 줌아웃 기능을 넣었구요. 여기까진 무난했는데 문제가..
캡쳐 버튼을 따로 둬서 영상 영역에 나오는 이미지나 영상을 캡쳐할 수 있도록 했습니다 . 캡쳐도 잘 되는데,
크롭할 때가 잘 안되네요..제가 원하고자 하는 기능이, 880x720영역에서 출력되는 이미지를 확대하고 나서
880x720 이런 특정 사이즈로 잘라서 저장하고 싶은데, 자꾸 원본크기(줌인 하기 전)로 캡쳐가 되네요..
크롭 부분 소스는
//크롭
public Bitmap getImageBitmapCrop(){
isCapture = true;
this.invalidate();
Bitmap temp2 = null;
try {
this.buildDrawingCache();
Bitmap temp = getDrawingCache();
Rect cropRect = getRect(temp.getHeight()/2, temp.getWidth()/2);
temp2 = Bitmap.createBitmap(temp, cropRect.left, cropRect.top, cropRect.width(), cropRect.height());
} catch (Exception e) {
//getDrawingCache == null
Bitmap temp = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
Canvas cc = new Canvas(temp);
cc.drawBitmap(getDrawabletoBitmap(), savedMatrix2, null);
Rect cropRect = getRect(temp.getHeight()/2, temp.getWidth()/2);
temp2 = Bitmap.createBitmap(temp, cropRect.left, cropRect.top, cropRect.width(), cropRect.height());
isCapture = false;
return temp2;
}
isCapture = false;
this.invalidate();
return temp2;
}
인데요..인터넷에 찾아보니 특정 영역을 크롭하려면 비트맵 좌표값을 알아야 한다는데.. 지금 찾고 있지만 많이 헷갈리네요.
//zpic에서 크롭한 영역을 저장
if (zpic.getImageBitmapCrop().compress(CompressFormat.JPEG,
100, out));
zpic이 이미지가 띄워지는 레이아웃입니다. 제 스스로 해결하고자 노력하고있지만 다른 분들 의견이나 조언 듣고자 질문글 올려봅니다..^^;
다시 한 번 정리하자면, 전체 해상도 1280x720 중, 왼쪽을 기준으로 880x720 영역이 비디오 및 이미지 출력 레이아웃이고, 영상을 일시정지할 때만 비트맵값을 따른 변수에 담아서 고놈에게 줌인/줌아웃기능을 추가했습니다.
그리고 줌인[확대]할 때 특정 영역만큼 [880x720] 현재 줌인 된 상태의 화면을 크롭해서 저장하고 싶은데 잘 안됩니다..