android camera拍摄surfaceview预览界面特定区域(该区域可移动)?3.在surfaceChanged中设置参数开始画区域:
android camera拍摄surfaceview预览界面特定区域(该区域可移动)
?3.在surfaceChanged中设置参数开始画区域:
?
?
private Bitmap mBitmap;private Camera.PictureCallback takePictureCallback = new Camera.PictureCallback() {@Overridepublic void onPictureTaken(byte[] data, Camera camera) {// TODO Auto-generated method stubif (data != null) {mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);camera.stopPreview();}Matrix matrix = new Matrix();matrix.setRotate(90);Bitmap rotaBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, false);getSurfaceSize();Bitmap sizeBitmap = Bitmap.createScaledBitmap(rotaBitmap, SurView_Width, SurView_Height, true);SaveBitmap(sizeBitmap);mFirstPointX = mDrawImageView.getmFristPointX() + 50;mFirstPointY = mDrawImageView.getmFristPointY() + 50;Bitmap newBitmap = Bitmap.createBitmap(sizeBitmap, mFirstPointX - 50, mFirstPointY - 50, 100, 100);if (newBitmap != null) {mTestImageView.setImageBitmap(newBitmap);}camera.startPreview();}};private void getSurfaceSize(){SurView_Width = mSurfaceView.getWidth();SurView_Height = mSurfaceView.getHeight();}private void SaveBitmap(Bitmap bitmap) {File mpicture = new File(mPath + File.separator + "pic.jpg");try {mpicture.createNewFile();BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(mpicture));bitmap.compress(CompressFormat.JPEG, 75, outputStream);outputStream.flush();outputStream.close();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}?
?
参考文献: ?http://blog.csdn.net/yanzi1225627/article/details/8580034
?
