private void initCamera() { if (!isPreview) { camera = Camera.open(); } if (camera != null && !isPreview) { streamIt = new StreamIt(); try { Camera.Parameters parameters = camera.getParameters(); parameters.setPreviewSize(screenWidth, screenHeight); // 设置预览照片的大小 parameters.setPreviewFpsRange(20, 30); // 每秒显示20~30帧 parameters.setPictureFormat(ImageFormat.NV21); // 设置图片格式 parameters.setPictureSize(screenWidth, screenHeight); // 设置照片的大小 camera.setPreviewDisplay(surfaceHolder); // 通过SurfaceView显示取景画面 camera.setPreviewCallback(streamIt); // 设置回调的类 camera.startPreview(); // 开始预览 camera.autoFocus(null); // 自动对焦 } catch (Exception e) { e.printStackTrace(); } isPreview = true; Thread postThread2 = new Thread(new postThread()); postThread2.start(); System.out.println("线程启动了@@@@@@@@@@@@@@@@@@@@@@@@@@"); } }
/** 给摄像头设置好一系列相关参数,并开始预览 */ private void initCamera() { azLog.log("isPreView", "" + isPreview); if (mCamera != null && !isPreview) { try { Camera.Parameters parameters = mCamera.getParameters(); // 设置预览照片的大小 parameters.setPreviewSize(mPreviewWidth, mPreviewHeight); // 设置预览照片时每秒显示多少帧的最小值和最大值 parameters.setPreviewFpsRange(mFrameMin, mFrameMax); // 设置图片格式 parameters.setPictureFormat(mImageFormat); // 设置JPG照片的质量 parameters.set("jpeg-quality", mImageQuality); // 设置照片的大小 parameters.setPictureSize(mPictureWidth, mPictureHeight); // 通过SurfaceView显示取景画面 mCamera.setPreviewDisplay(mSurfaceHolder); // 开始预览 mCamera.startPreview(); azLog.log("AzCamera", "摄像头打开"); } catch (IOException e) { e.printStackTrace(); } isPreview = true; } }
private void initPreview(int width, int height) { if (camera != null && previewHolder.getSurface() != null) { try { camera.setPreviewDisplay(previewHolder); } catch (Throwable t) { } if (!cameraConfigured) { Camera.Parameters parameters = camera.getParameters(); Camera.Size size = getBestPreviewSize(width, height, parameters); Camera.Size pictureSize = getLargestPictureSize(parameters); if (size != null && pictureSize != null) { if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_AUTO)) { // set the focus mode parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); } parameters.setPreviewSize(size.width, size.height); parameters.setPictureSize(pictureSize.width, pictureSize.height); parameters.setPictureFormat(ImageFormat.JPEG); camera.setParameters(parameters); cameraConfigured = true; } } } }
// 设置相机的属性 抓取图像 private void setCameraParameters() { Camera.Parameters caParameters = camera.getParameters(); caParameters.setPictureFormat(ImageFormat.JPEG); caParameters.setPreviewSize(400, 500); caParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); camera.autoFocus( new Camera.AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { if (success) { camera.takePicture(null, null, pictureCallback); } } }); }
public void takePicture(final PictureTransaction xact) { if (inPreview) { if (isAutoFocusing) { throw new IllegalStateException("Camera cannot take a picture while auto-focusing"); } else { previewParams = camera.getParameters(); Camera.Parameters pictureParams = camera.getParameters(); Camera.Size pictureSize = xact.host.getPictureSize(xact, pictureParams); pictureParams.setPictureSize(pictureSize.width, pictureSize.height); pictureParams.setPictureFormat(ImageFormat.JPEG); if (xact.flashMode != null) { pictureParams.setFlashMode(xact.flashMode); } if (!onOrientationChange.isEnabled()) { setCameraPictureOrientation(pictureParams); } camera.setParameters(xact.host.adjustPictureParameters(xact, pictureParams)); xact.cameraView = this; postDelayed( new Runnable() { @Override public void run() { try { camera.takePicture(xact, null, new PictureTransactionCallback(xact)); } catch (Exception e) { android.util.Log.e(getClass().getSimpleName(), "Exception taking a picture", e); // TODO get this out to library clients } } }, xact.host.getDeviceProfile().getPictureDelay()); inPreview = false; } } else { throw new IllegalStateException( "Preview mode must have started before you can take a picture"); } }
/** 开始预览 */ private void startPreview() { mCamera = Camera.open(); // mCamera.lock(); // mCamera.l Camera.Parameters parameters = mCamera.getParameters(); parameters.setPictureFormat(PixelFormat.JPEG); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_ON); mCamera.setParameters(parameters); mCamera.setDisplayOrientation(90); try { Log.v(DEBUG, "holder: " + mSurfaceHolder); mCamera.setPreviewDisplay(mSurfaceHolder); } catch (IOException e) { e.printStackTrace(); Log.v(DEBUG, "exception occurs: " + e); } mCamera.startPreview(); }
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Camera.Parameters parameters = camera.getParameters(); parameters.setPreviewSize(width, height); parameters.setPictureFormat(PixelFormat.JPEG); try { String flash = (String) Camera.Parameters.class.getField("FLASH_MODE_AUTO").get(parameters); String focus = (String) Camera.Parameters.class.getField("FOCUS_MODE_AUTO").get(parameters); Method setFlash = Camera.Parameters.class.getMethod("setFlashMode", new Class[] {String.class}); Method setFocus = Camera.Parameters.class.getMethod("setFocusMode", new Class[] {String.class}); } catch (final Exception e) { } camera.setParameters(parameters); camera.startPreview(); }
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Log.d("surface", "surface change"); camera = Camera.open(); try { Camera.Parameters parameters = camera.getParameters(); List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes(); Camera.Size pS = previewSizes.get(previewSizes.size() - 1); parameters.setPictureFormat(PixelFormat.JPEG); parameters.setPreviewSize(pS.width, pS.height); camera.setParameters(parameters); // 設置參數 camera.setPreviewDisplay(surfaceHolder); // 鏡頭的方向和手機相差90度,所以要轉向 camera.setDisplayOrientation(90); // 攝影頭畫面顯示在Surface上 camera.startPreview(); } catch (IOException e) { e.printStackTrace(); } }
void initCameraParameters() { Camera.Parameters parameters = mCamera.getParameters(); parameters.setPictureFormat(ImageFormat.JPEG); List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes(); // for(Size s:previewSizes){ // System.out.println("("+s.width+","+s.height+")"); // } rate = CameraUtil.getScreenRate(RegistCameraActivity.this); Size previewSize = CameraUtil.getPropPreviewSize(previewSizes, rate, 800); parameters.setPreviewSize(previewSize.width, previewSize.height); List<Camera.Size> pictureSizes = parameters.getSupportedPictureSizes(); Size pictureSize = CameraUtil.getPropPictureSize(pictureSizes, rate, 800); parameters.setPictureSize(pictureSize.width, pictureSize.height); if (CURRENT_CAMERA == CameraInfo.CAMERA_FACING_FRONT) { mCameraOrientation = 270; } else { mCameraOrientation = 90; } parameters.setRotation(mCameraOrientation); // parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); mCamera.setParameters(parameters); }
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Log.i("TAG", "surfaceChanged"); // TODO Auto-generated method stub Camera.Parameters parameters = mCamera.getParameters(); parameters.setFocusMode(Parameters.FOCUS_MODE_MACRO); parameters.setPictureFormat(PixelFormat.JPEG); // 设置图片格式 // Camera.Size picSize = parameters.getSupportedPictureSizes().get(0); // parameters.setPictureSize(picSize.width, picSize.height); mCamera.setParameters(parameters); List<Camera.Size> sizes = parameters.getSupportedPictureSizes(); mFrameWidth = width; mFrameHeight = height; // selecting optimal camera preview size { double minDiff = Double.MAX_VALUE; for (Camera.Size size : sizes) { if (Math.abs(size.height - height) < minDiff) { mFrameWidth = size.width; mFrameHeight = size.height; Log.d( "Size", "width = " + Integer.toString(mFrameWidth) + "height = " + Integer.toString(mFrameHeight)); minDiff = Math.abs(size.height - height); } } } parameters.setPreviewSize(getFrameWidth(), getFrameHeight()); mCamera.setParameters(parameters); mCamera.startPreview(); // 开始预览 }
public void surfaceCreated(SurfaceHolder holder) { try { // Attempt to open camera _camera = Camera.open(); // Set desired camera parameters Camera.Parameters p = _camera.getParameters(); p.setPictureFormat(ImageFormat.JPEG); p.setPictureSize(_width, _height); p.setJpegQuality(_quality); _camera.setParameters(p); } catch (RuntimeException e) { Log.w(TAG, "Unable to connect to camera.", e); // If opening the camera fails, return empty image and exit final Intent intent = new Intent(); intent.setAction(PICTURE_INTENT); intent.putExtra(IMAGE_EXTRA, new byte[0]); sendBroadcast(intent); setResult(RESULT_CANCELED, intent); finish(); } }