現在、 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
});
},
どちらの試みも私が望んでいたことに成功しませんでした。キャプチャされた画像の固定幅と高さ。
この画像の画像の幅と高さを設定するにはどうすればよいですか?
これを私の友達に試してみてください。削除する 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
});
}
キャプチャした後、画像のサイズを変更することに気が変わってみませんか?
私は以下を使用し、それはうまく機能します。
{
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
可能であれば、ネイティブコードでも設定でき、正常に機能します。