カメラプラグインで取得した画像をリサイズするときに使ったプラグイン「cordova-plugin-image-resizer」のご紹介です。
以前は違う方法でリサイズ処理を行っていたのですが、プラグインを探したらこちらの方が簡単!ということで乗り換えました。
今回使用したプラグインの GitHub はこちらから。
GitHub – JoschkaSchulz/cordova-plugin-image-resizer
https://github.com/JoschkaSchulz/cordova-plugin-image-resizer
インストールは下記のコマンドを使います。
が、こちらのプラグインはカメラプラグインの導入が必要とのことでしたので、インストールする前に、先にカメラプラグインをインストールしてください。
// カメラプラグイン cordova plugin add cordova-plugin-camera // 画像リサイズプラグイン cordova plugin add https://github.com/protonet/cordova-plugin-image-resizer.git
あとは、下記のコードを追加すればOKです。
なお、サンプルコードはカメラプラグインで画像を取得するところから記述しています。
// カメラプラグインでアルバムから画像取得
var cameraoptions = {
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
quality: 50,
encodingType: Camera.EncodingType.JPEG,
destinationType: Camera.DestinationType.FILE_URI
}
navigator.camera.getPicture(function(imageURI) {
// 画像リサイズ
let resizeoptions = {
uri: imageURI,
folderName: "[任意のフォルダ名]",
quality: 70,
width: 1000,
height: 1000,
base64: true,
fit: false
};
window.ImageResizer.resize(resizeoptions,
function(image) {
// 画像リサイズ成功時の処理
}, function() {
// 画像リサイズ失敗時の処理
});
}, function(error) {
// 画像取得失敗時の処理
}, cameraoptions);
10行目からのリサイズオプションで、画像 URI やリサイズ後の高さや幅、画質などを決定しています。
リサイズ後の画像パスは 20行目のファンクションの引数 image で取得できます。
また、環境の都合上、上記のコードでは リサイズ後の画像は base64 形式になっています。
こちらは 16行目で指定しています。
17行目の fit は、リサイズ後の画像を指定した幅・高さに合わせるかどうかを指定します。
こちらは Android のみに反映される設定です。
以上、画像のリサイズを行えるプラグイン「cordova-plugin-image-resizer」のご紹介でした。
ご参考になれば幸いです。