Java Code Examples for android.hardware.Camera.Parameters#setPictureSize()

The following examples show how to use android.hardware.Camera.Parameters#setPictureSize() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CameraView.java    From zom-android-matrix with Apache License 2.0 6 votes vote down vote up
private void startPreview(SurfaceHolder holder) {
	try {

		Parameters params = camera.getParameters();

		if (params.getSupportedFocusModes().contains(
				Parameters.FOCUS_MODE_AUTO)) {
			params.setFocusMode(Parameters.FOCUS_MODE_AUTO);
		}

		List<Size> previewSizes = camera.getParameters().getSupportedPreviewSizes();
		List<Size> pictureSizes = camera.getParameters().getSupportedPictureSizes();

           params.setPreviewSize(previewSizes.get(previewSizes.size()-2).width,previewSizes.get(previewSizes.size()-2).height);
		params.setPictureSize(pictureSizes.get(pictureSizes.size()-2).width,pictureSizes.get(pictureSizes.size()-2).height);
		camera.setParameters(params);

		camera.setPreviewDisplay(holder);
		camera.startPreview();

		previewConsumer.start(camera);
	} catch(IOException e) {
		Log.e(TAG, "Error starting camera preview", e);
	}
}
 
Example 2
Source File: CameraView.java    From Zom-Android-XMPP with GNU General Public License v3.0 6 votes vote down vote up
private void startPreview(SurfaceHolder holder) {
	try {

		Parameters params = camera.getParameters();

		if (params.getSupportedFocusModes().contains(
				Camera.Parameters.FOCUS_MODE_AUTO)) {
			params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
		}

		List<Size> previewSizes = camera.getParameters().getSupportedPreviewSizes();
		List<Size> pictureSizes = camera.getParameters().getSupportedPictureSizes();

           params.setPreviewSize(previewSizes.get(previewSizes.size()-2).width,previewSizes.get(previewSizes.size()-2).height);
		params.setPictureSize(pictureSizes.get(pictureSizes.size()-2).width,pictureSizes.get(pictureSizes.size()-2).height);
		camera.setParameters(params);

		camera.setPreviewDisplay(holder);
		camera.startPreview();

		previewConsumer.start(camera);
	} catch(IOException e) {
		Log.e(TAG, "Error starting camera preview", e);
	}
}
 
Example 3
Source File: CameraSource.java    From mlkit-material-android with Apache License 2.0 5 votes vote down vote up
private void setPreviewAndPictureSize(Camera camera, Parameters parameters) throws IOException {
  // Gives priority to the preview size specified by the user if exists.
  CameraSizePair sizePair = PreferenceUtils.getUserSpecifiedPreviewSize(context);
  if (sizePair == null) {
    // Camera preview size is based on the landscape mode, so we need to also use the aspect
    // ration of display in the same mode for comparison.
    float displayAspectRatioInLandscape;
    if (Utils.isPortraitMode(graphicOverlay.getContext())) {
      displayAspectRatioInLandscape =
          (float) graphicOverlay.getHeight() / graphicOverlay.getWidth();
    } else {
      displayAspectRatioInLandscape =
          (float) graphicOverlay.getWidth() / graphicOverlay.getHeight();
    }
    sizePair = selectSizePair(camera, displayAspectRatioInLandscape);
  }
  if (sizePair == null) {
    throw new IOException("Could not find suitable preview size.");
  }

  previewSize = sizePair.preview;
  Log.v(TAG, "Camera preview size: " + previewSize);
  parameters.setPreviewSize(previewSize.getWidth(), previewSize.getHeight());
  PreferenceUtils.saveStringPreference(
      context, R.string.pref_key_rear_camera_preview_size, previewSize.toString());

  Size pictureSize = sizePair.picture;
  if (pictureSize != null) {
    Log.v(TAG, "Camera picture size: " + pictureSize);
    parameters.setPictureSize(pictureSize.getWidth(), pictureSize.getHeight());
    PreferenceUtils.saveStringPreference(
        context, R.string.pref_key_rear_camera_picture_size, pictureSize.toString());
  }
}
 
Example 4
Source File: Camera1Controller.java    From pixelvisualcorecamera with Apache License 2.0 5 votes vote down vote up
public void setPictureSize(android.util.Size size) {
  Log.i(TAG, String.format("setting picture size (%d, %d)", size.getWidth(), size.getHeight()));
  assertNotState(STATE_NOT_ACQUIRED, "A camera must be acquired before setting parameters");
  Parameters params = camera.getParameters();
  params.setPictureSize(size.getWidth(), size.getHeight());
  camera.setParameters(params);
}
 
Example 5
Source File: CameraEngine.java    From TikTok with Apache License 2.0 4 votes vote down vote up
public static void setDefaultParameters(){
        if(camera == null){
            return ;
        }
        Parameters parameters = camera.getParameters();
        if (parameters.getSupportedFocusModes().contains(
                Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
            parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
        }
        Size previewSize = CameraUtils.getLargePreviewSize(camera);
        parameters.setPreviewSize(PREVIEW_WIDTH, PREVIEW_HEIGHT);
        if(!isFrameRateSure && mRealFrameRate == CAMERA_FRAME_RATE){
            List<int[]> fpsList =  parameters.getSupportedPreviewFpsRange();
            int tempFps = 30001;
            for(int i=0;i<fpsList.size();i++){
                int[] fps = fpsList.get(i);
                if(fps[0] == fps[1]){
                    if(fps[0] >= (CAMERA_FRAME_RATE * 1000) && fps[0]<= tempFps){
                        tempFps = fps[0];
                    }
                }
            }
            if(tempFps == 30001){
                mRealFrameRate = CAMERA_FRAME_RATE;
            }else{
                mRealFrameRate = tempFps/1000;
            }
        }
        parameters.setPreviewFpsRange(mRealFrameRate * 1000,mRealFrameRate * 1000);
        parameters.setPreviewFrameRate(mRealFrameRate);
        Size pictureSize = CameraUtils.getLargePictureSize(camera);
        parameters.setPictureSize(pictureSize.width, pictureSize.height);
        parameters.setRotation(getRightCameraOrientation(CameraEngine.cameraID));
//        parameters.setExposureCompensation(-1);
        camera.setParameters(parameters);
//        DebugTool.warn("CameraEngineExposureCompensation:" + parameters.getMinExposureCompensation() + "," + parameters.getMaxExposureCompensation());
//        camera.setDisplayOrientation(getRightCameraOrientation(CameraEngine.cameraID));
//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//                int[] fpsa = new int[2];
//                camera.getParameters().getPreviewFpsRange(fpsa);
//                DebugTool.warn("CameraEnginePreviewFpsAA:" + fpsa[0] + "," + fpsa[1] + "," + camera.getParameters().getPreviewFrameRate());
//            }
//        },2000);
//        if(!isFrameReal && CacheUtil.getInt(AppUtil.getApplicationContext(),FRAME_RATE_KEY,0) == 0){
//            byte[] data = new byte[PREVIEW_WIDTH*PREVIEW_HEIGHT*3/2];
//            camera.addCallbackBuffer(data);
//            camera.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
//                @Override
//                public void onPreviewFrame(byte[] data, Camera camera) {
//                    mFrameCount++;
//                    DebugTool.warn("CameraPreviewCallback:" + mFrameCount);
//                    CameraEngine.camera.addCallbackBuffer(data);
//                    if(mFrameStartTime > 0 && System.currentTimeMillis()-mFrameStartTime >= 2000){//开始确定帧率
//                        camera.setPreviewCallbackWithBuffer(null);
//                        isFrameStart = false;
//                        isFrameReal = true;
//
//                        if(mFrameCount>=mRealFrameRate){
//                            if(mFrameCount/2-mRealFrameRate<4){
//                                return ;
//                            }else{
//                                mRealFrameRate = mFrameCount/2 + (5-mFrameCount%5);
//                            }
//                        }
//                        DebugTool.warn("CameraPreviewCallback:mRealFrameRate:" + mRealFrameRate);
//                        return ;
//                    }
//                    if(!isFrameStart){
//                        isFrameStart = true;
//                        mFrameStartTime = System.currentTimeMillis();
//                    }
//                }
//            });
//        }
    }
 
Example 6
Source File: AndroidCameraAgentImpl.java    From Camera2 with Apache License 2.0 4 votes vote down vote up
private void applySettingsToParameters(final CameraSettings settings,
        final Parameters parameters) {
    final CameraCapabilities.Stringifier stringifier = mCapabilities.getStringifier();
    Size photoSize = settings.getCurrentPhotoSize();
    parameters.setPictureSize(photoSize.width(), photoSize.height());
    Size previewSize = settings.getCurrentPreviewSize();
    parameters.setPreviewSize(previewSize.width(), previewSize.height());
    if (settings.getPreviewFrameRate() == -1) {
        parameters.setPreviewFpsRange(settings.getPreviewFpsRangeMin(),
                settings.getPreviewFpsRangeMax());
    } else {
        parameters.setPreviewFrameRate(settings.getPreviewFrameRate());
    }
    parameters.setPreviewFormat(settings.getCurrentPreviewFormat());
    parameters.setJpegQuality(settings.getPhotoJpegCompressionQuality());
    if (mCapabilities.supports(CameraCapabilities.Feature.ZOOM)) {
        parameters.setZoom(zoomRatioToIndex(settings.getCurrentZoomRatio(),
                parameters.getZoomRatios()));
    }
    parameters.setExposureCompensation(settings.getExposureCompensationIndex());
    if (mCapabilities.supports(CameraCapabilities.Feature.AUTO_EXPOSURE_LOCK)) {
        parameters.setAutoExposureLock(settings.isAutoExposureLocked());
    }
    parameters.setFocusMode(stringifier.stringify(settings.getCurrentFocusMode()));
    if (mCapabilities.supports(CameraCapabilities.Feature.AUTO_WHITE_BALANCE_LOCK)) {
        parameters.setAutoWhiteBalanceLock(settings.isAutoWhiteBalanceLocked());
    }
    if (settings.getWhiteBalance() != null) {
        parameters.setWhiteBalance(stringifier.stringify(settings.getWhiteBalance()));
    }
    if (mCapabilities.supports(CameraCapabilities.Feature.FOCUS_AREA)) {
        if (settings.getFocusAreas().size() != 0) {
            parameters.setFocusAreas(settings.getFocusAreas());
        } else {
            parameters.setFocusAreas(null);
        }
    }
    if (mCapabilities.supports(CameraCapabilities.Feature.METERING_AREA)) {
        if (settings.getMeteringAreas().size() != 0) {
            parameters.setMeteringAreas(settings.getMeteringAreas());
        } else {
            parameters.setMeteringAreas(null);
        }
    }
    if (settings.getCurrentFlashMode() != CameraCapabilities.FlashMode.NO_FLASH) {
        parameters.setFlashMode(stringifier.stringify(settings.getCurrentFlashMode()));
    }
    if (settings.getCurrentSceneMode() != CameraCapabilities.SceneMode.NO_SCENE_MODE) {
        if (settings.getCurrentSceneMode() != null) {
            parameters
                    .setSceneMode(stringifier.stringify(settings.getCurrentSceneMode()));
        }
    }
    parameters.setRecordingHint(settings.isRecordingHintEnabled());
    Size jpegThumbSize = settings.getExifThumbnailSize();
    if (jpegThumbSize != null) {
        parameters.setJpegThumbnailSize(jpegThumbSize.width(), jpegThumbSize.height());
    }
    parameters.setPictureFormat(settings.getCurrentPhotoFormat());

    CameraSettings.GpsData gpsData = settings.getGpsData();
    if (gpsData == null) {
        parameters.removeGpsData();
    } else {
        parameters.setGpsTimestamp(gpsData.timeStamp);
        if (gpsData.processingMethod != null) {
            // It's a hack since we always use GPS time stamp but does
            // not use other fields sometimes. Setting processing
            // method to null means the other fields should not be used.
            parameters.setGpsAltitude(gpsData.altitude);
            parameters.setGpsLatitude(gpsData.latitude);
            parameters.setGpsLongitude(gpsData.longitude);
            parameters.setGpsProcessingMethod(gpsData.processingMethod);
        }
    }

}