Подтвердить что ты не робот

Установка камеры и ширины камеры телефона

В настоящее время я создаю мобильное приложение, которое использует плагин камеры Phonegap (Cordova). Он правильно отображает изображение и отображает его там, где я хочу, но я не могу установить параметры targetWidth и targetHeight, как описано.

targetWidth: ширина в пикселях для масштабирования изображения. Должен использоваться с targetHeight. Соотношение сторон остается постоянным. (Номер)

targetHeight: высота в пикселях для масштабирования изображения. Должен использоваться с targetWidth. Соотношение сторон остается постоянным. (Номер)

Как я понимаю, это изменит ширину и высоту изображения на выходе. Они, похоже, не работают.

Предложение, которое я нашел при исследовании решения, сказал, чтобы использовать необязательный параметр allowEdit. В этом я мог бы заставить пользователя выбрать предустановленное квадратное изображение. Это, однако, похоже, не работает.

См. мой код ниже для справки.

camera: function() {
    //Fire up the camera!
    navigator.camera.getPicture(onSuccess, onFail, {
        destinationType: Camera.DestinationType.DATA_URL,
        allowEdit: true,
        targetWidth: 512,
        targetHeight: 512
    });
},

Ни один из attemps не преуспел в том, чего я хотел; фиксированная ширина и высота для захваченного изображения.

Как установить ширину и высоту изображения на этом изображении?

4b9b3361

Ответ 1

Попробуй этого моего друга. удалите allowEdit : true

camera: function() {
        navigator.camera.getPicture(onSuccess, onFail, {
            quality: 50,
            targetWidth: 512,
            targetHeight: 512,
            destinationType: navigator.camera.DestinationType. DATA_URL,
            saveToPhotoAlbum: true,
            correctOrientation: true
        });
    }

Ответ 3

Я использую следующее, и он работает хорошо.

{
   quality: 25,
   targetWidth: 500,
   targetHeight: 500,
   destinationType: Camera.DestinationType.FILE_URI,
   sourceType: Camera.PictureSourceType.CAMERA,
   correctOrientation: true
}

Также возможно изменить собственный код плагина в соответствии с собственными потребностями. Если вы пытаетесь использовать android. вот исправление.

Внутри выполнить, оба параметра устанавливаются по умолчанию как ноль, что означает полный размер, захваченный устройством, иначе, если некоторые значения передаются параметрами args, то это учитывается.

    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

            this.callbackContext = callbackContext;

     if (action.equals("takePicture")) {
                int srcType = CAMERA;
                int destType = FILE_URI;
                this.saveToPhotoAlbum = false;
                this.targetHeight = 0;
                this.targetWidth = 0;
                this.encodingType = JPEG;
                this.mediaType = PICTURE;
                this.mQuality = 80;

                this.mQuality = args.getInt(0);
                destType = args.getInt(1);
                srcType = args.getInt(2);
                this.targetWidth = args.getInt(3);
                this.targetHeight = args.getInt(4);
                this.encodingType = args.getInt(5);
                this.mediaType = args.getInt(6);
                this.allowEdit = args.getBoolean(7);
                this.correctOrientation = args.getBoolean(8);
                this.saveToPhotoAlbum = args.getBoolean(9);

см. https://github.com/apache/cordova-plugin-camera/blob/master/src/android/CameraLauncher.java#L115

Если возможно, вы можете установить его также в собственном коде и отлично работать.