2013-07-09 4 views
0

카메라로 이미지를 캡쳐 한 다음 비트 맵에 저장합니다. 그 이미지를 600x600px로 중앙에서자를 것으로 기대하고 있습니다. 이 같은이미지를 고정 된 크기로 자르기

뭔가가 나는 발견했습니다

https://stackoverflow.com/a/6909144/1943607

그러나, 나는 내가 & 높이로 고정 설정할 수있는 방법을 찾을 수 없습니다.

나는 그림과 캔버스를 그리는데 심술 궂다. 그것은 나를 위해 너무 추상적 인 것 같다.

감사합니다.

답변

1

This입니다.

// Returns an immutable bitmap from the specified subset of the source bitmap. 
static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height) 



(0,0) 왼쪽 상단 또는 중앙 있다면 정말 모르겠지만, 나는 그것이 왼쪽 상단 믿습니다.

* (0,0) 

*~~~~~~+===========+ 
'  '   | 
'  ' 200  | 
'  '   | 
+~~~~~~+   | 400 
| 100    | 
|     | 
|     | 
+==================+ 
     300 


이 참으로 그 센터의 경우는 왼쪽 상단이야 그렇지 않은 경우

x should be width /2 
y >>  height/2 

: 두 차례에

x should be width /2 - cropWidth/2 
y >>  height/2 - cropHeight/2 

이 같을 것이다.

* (150,200) 

+==================+ 
|     | 
|  +~~~~~~+  | 
|  '  '  | 
|  ' * '200 | 400 
|  '  '  | 
|  +~~~~~~+  | 
|  100  | 
+==================+ 
     300 
+0

'newBitmap = Bitmap.createBitmap (oldBitmap, x, y, 500, 500);'과 같은 것이 있습니다. 보시다시피 x와 y가 누락되었습니다. 나는 그것을 계산하는 방법에 대해 잘 모르겠습니다. – Reinherd

+0

@ SergiCastellsaguéMillán 내 대답을 한 번 더 읽습니다. –

0

600x600px

if(srcBmp.getWidth()>600 && srcBmp.getHeight()>600) 
    dstBmp = Bitmap.createBitmap(srcBmp, 
     srcBmp.getWidth()/2 - 600/2, 
     srcBmp.getHeight()/2 - 600/2, 
     600, 
     600); 

나는 당신이 준 링크에서 코드를 변경이 작동 바랍니다.

관련 문제