카메라에서 이미지를 바로 캐치 해서 뿌려주는 어플을 만들고 있는데
GC가 1초당 한번 씩 나타나는것 같습니다.
//소스코드
mCamera.setPreviewCallback(new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters params = mCamera.getParameters();
int w = params.getPreviewSize().width;
int h = params.getPreviewSize().height;
@SuppressWarnings("deprecation")
int format = params.getPreviewFormat();
YuvImage image = new YuvImage(data, format, w, h, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
Rect area = new Rect(0, 0, w, h);
//
image.compressToJpeg(area, 50, out);
System.out.println("getPreviewSize().width : "+w+"\n"
+"params.getPreviewSize().height : "+h);
MainActivity.captureImg = BitmapFactory.decodeByteArray(out.toByteArray(), 0, out.size(),option);
MainActivity.captureImg = Bitmap.createScaledBitmap(MainActivity.captureImg,
(int)MainActivity.Display_Width, (int)MainActivity.Display_Height, true);
MainActivity.IC.setImageBitmap(MainActivity.captureImg);
}
});
try {
mCamera.setPreviewDisplay(mHolder);
} catch (IOException e) {
mCamera.release();
mCamera = null;
}
또 캡쳐는 잘 받아와야지는데 속도도 카메라에 비해 너무 느리네요.
JNI 말고 성능을 좀더 높일수 있는 방법 없나요?