일부 장치 (최신 안드로이드에만 해당)에서는 스팟 측광이 지원됩니다. AsyncTask와 같은 별도의 타이머 스레드에 의해 트리거 된 JPEG 콜백을 사용하여 선택 지점으로 미터링 할 EXIF 정보를 읽을 수 있습니다. 오래된 장치에
//on Event Touch callback on your SurfaceView
x=event.getX();
y=event.getY();
params=camera.getParameters();
... //check for rotation, calculate focus point (x, y: -1000, 1000)
if(params.getMaxNumMeteringAreas() > 0){
//draw a meter area, however big you want, 1000 is weight (0-1000)
Camera.Area ca=new Area(new Rect(x-25, y-25, x+25, y+25), 1000);
List<Camera.Area> areas=new ArrayList<Area>();
areas.add(ca);
params.setFocusAreas(areas);
params.setMeteringAreas(areas);
camera.setParameters(params);
}else{
//process the Bitmap and do the below...
}
(당신은 이전 버전과의 호환성을 원하는 경우), 당신은 여전히 (코드 저장) 포커스 포인트를 설정하고 다음 픽셀의 평균을이 사용할 수 있는지 여부를 확인하려면, 당신은 사용할 수 있습니다 EXIF 값 (어두운 경우 노출을 낮추는 등)과 비교하여 초점 (폭과 높이의 6 % 사용)을 중심으로합니다. 이를 위해 push-to-meter 버튼을 사용하고 싶을 것입니다 (이전 장비는 JPEG 콜백을 할 때 지연되기 때문에). 두 가지 방법으로
average=((r+g+b)/3-128)/256
myEV=myEV+myEV*average
, 당신이 읽고있는 이미지가 제대로 (당신이 이미지 뷰에 그것을 넣고 미리보기 비교하여 확인하실 수 있습니다) 회전되어 있는지 확인합니다.
EV에서 당신은 비교적 쉽게 (또는 원하는 측정이 무엇이든) Lux 또는 Foot Candles로 쉽게 변환 할 수 있습니다.
내가 틀렸을 경우 댓글이되어야합니다. 그렇지 않으면 그대로 게시하고 답변을 삭제하십시오. –
알고있는 한, 이것은 현재 API 지원이 없지만 일부 사용자는 EXIF 데이터를 사용하여 성공한 것입니다. –
나는 안드로이드에 대한 경험이 없다. (나는 그것을 사용한다.)하지만 내가 말할 수있는 한 당신은 당신의 대답에 다른 질문을하고있다. –