web-dev-qa-db-ja.com

カメラの幅と高さのphonegapカメラを設定します

現在、 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
    });
},

どちらの試みも私が望んでいたことに成功しませんでした。キャプチャされた画像の固定幅と高さ。

この画像の画像の幅と高さを設定するにはどうすればよいですか?

14
Matthijs

これを私の友達に試してみてください。削除する 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
Mohammad Nurdin

キャプチャした後、画像のサイズを変更することに気が変わってみませんか?

HTML5 Canvasで画像のサイズを変更するのに役立つ記事

1
Jack He

私は以下を使用し、それはうまく機能します。

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

必要に応じて、プラグインネイティブコードを変更することもできます。あなたがAndroidで試している場合。これが修正です。

execute関数内では、両方のパラメーターがデフォルトでゼロに設定されています。これは、デバイスによってキャプチャされたフルサイズを意味します。それ以外の場合、一部の値が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

可能であれば、ネイティブコードでも設定でき、正常に機能します。

0
AAhad