public void onPreviewFrame(byte[] data, Camera camera) {
int[] rgb = new int[previewSize.width * previewSize.height];
try {
byte[] baos = convertYuvToJpeg(data, camera);
Camera.Parameters mParameters = camera.getParameters();
int previewFormat = mParameters.getPreviewFormat();
int mwidth = mParameters.getPreviewSize().width;
int mheight = mParameters.getPreviewSize().height;
YuvImage i = new YuvImage(data, previewFormat, mwidth, mheight,
null);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
Rect area = new Rect(0, 0, mwidth, mheight);
i.compressToJpeg(area, 80, outStream);
Bitmap b = BitmapFactory.decodeByteArray(outStream.toByteArray(),
0, outStream.size());
BitmapDrawable bd = new BitmapDrawable(b);
ImageView v = new ImageView(context);
v.setScaleType(ImageView.ScaleType.CENTER_CROP);
v.setImageDrawable(bd);
} catch (Exception e) {
Log.d("########", "ERROR");
}
}
위의 소스와 같이 onPreviewFrame 을 이용하여 Camera Preview 의 YUV byte[] data 를 가져오는데 성공했습니다. 아직 중간에 필터링 함수는 안넣어놨고요... 일단 받아온 data 를 가지고 image 를 만들어 image view 를 매번 띄우는 source 를 구현을 했는데 중간에 받아온 byte[] data 를 0 으로 초기화 후 image view 를 띄워도 화면은 그대로 preview 가 띄워져 있습니다. 어떻게 하면 변환된 이미지가 보일까요?