마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Camera Preview 를 Filtering 한 새로운 SurfaceView 를 띄우는 방법을 잘 모르겠습니다.

0 추천
	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 가 띄워져 있습니다. 어떻게 하면 변환된 이미지가 보일까요?

토비형님 (120 포인트) 님이 2015년 11월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...