コード例 #1
0
 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("线程启动了@@@@@@@@@@@@@@@@@@@@@@@@@@");
   }
 }
コード例 #2
0
ファイル: AzCameraClass.java プロジェクト: zgljl2012/AzCamera
 /** 给摄像头设置好一系列相关参数,并开始预览 */
 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;
   }
 }
コード例 #3
0
  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;
        }
      }
    }
  }
コード例 #4
0
  // 设置相机的属性 抓取图像
  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);
            }
          }
        });
  }
コード例 #5
0
ファイル: CameraView.java プロジェクト: porkchop79/gear2cam
  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");
    }
  }
コード例 #6
0
 /** 开始预览 */
 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();
 }
コード例 #7
0
ファイル: CameraFavorite.java プロジェクト: kongx73/AndRoad
        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();
        }
コード例 #8
0
    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();
      }
    }
コード例 #9
0
 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);
 }
コード例 #10
0
  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(); // 开始预览
  }
コード例 #11
0
  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();
    }
  }