質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • JavaScript

    19775questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    7948questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • Monaca

    1087questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • Cordova

    462questions

    Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

ImagePickerプラグインでオリジナルサイズの画像を取得したい

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 785

agepan

score 55

Monacaを使用してアプリ開発を行っております。
スマホに保存されている画像をアプリ内に取り込むために、「ImagePicker」というCordovaプラグインを用いて、動いております。
http://plugins.telerik.com/cordova/plugin/imagepicker

オプションを設定することにより、例えば「width」に「400」と設定すると、400px幅にサイズ変更された画像を取得することができるのですが、サイズ変更せずに、オリジナルサイズの画像を取得したいと考えております。

このオプションを外すとファイルエラー(5)と表示され、また、別のサイトで「widthとheight双方が“0”のときオリジナルサイズを返す」とありましたので試してみたのですが、同様のエラーでした。

こちらのプラグインで、オリジナルサイズの画像を(=画像何も加工せずそのまま)取得する方法をご存知の方はいらっしゃいませんでしょうか。

よろしくお願いいたします。

追記:コードを追記します。

function getImage() {
  try{
      window.imagePicker.getPictures(
          function(results) {
              var content = '';
              for (var i = 0; i < results.length; i++) {
                  camera_success(results[i]); // 取得成功時にファイルを保存する関数を実行
              }
          }, function (error) {
              alert('Error: ' + error);
      }, {
        //maximumImagesCount: 10, //取り込める最大枚数(Androidのみ)
        title: '画像を選択',
        //message: '取り込める枚数は最大10枚までです。',
        width: 2000 // 高さを指定してなければ画像はこの幅を基準としたサイズにリサイズされる
        //quality: 100 // サイズ変更された画像の品質(デフォルト100)
        //outputType: imagePicker.OutputType.BASE64_STRING
      }
  );
  } catch(e){
      alert(e);

  }
}

【再追記】
プラグインのJavaScriptがあったので、コードを以下に掲載いたします。

「画像のサイズを変更する幅(高さ/幅のいずれかが0の場合は、サイズに合わせてサイズが変更されます)他のアスペクト比を維持しながら、高さと幅の両方が0の場合、フルサイズイメージが返されます)」と書いてありますが、widthとheightを0にすると「FileError:5」と出て取得できません。

/*global cordova,window,console*/
/**
 * An Image Picker plugin for Cordova
 *
 * Developed by Wymsee for Sync OnSet
 */

var ImagePicker = function() {

};

ImagePicker.prototype.OutputType = {
    FILE_URI: 0,
    BASE64_STRING: 1
};

ImagePicker.prototype.validateOutputType = function(options){
    var outputType = options.outputType;
    if(outputType){
        if(outputType !== this.OutputType.FILE_URI && outputType !== this.OutputType.BASE64_STRING){
            console.log('Invalid output type option entered. Defaulting to FILE_URI. Please use window.imagePicker.OutputType.FILE_URI or window.imagePicker.OutputType.BASE64_STRING');
            options.outputType = this.OutputType.FILE_URI;
        }
    }
};

ImagePicker.prototype.hasReadPermission = function(callback) {
  return cordova.exec(callback, null, "ImagePicker", "hasReadPermission", []);
};

ImagePicker.prototype.requestReadPermission = function(callback) {
  return cordova.exec(callback, null, "ImagePicker", "requestReadPermission", []);
};

/*
*    success - success callback
*    fail - error callback
*    options
*        .maximumImagesCount - max images to be selected, defaults to 15. If this is set to 1,
*                              upon selection of a single image, the plugin will return it.
*        .width - width to resize image to (if one of height/width is 0, will resize to fit the
*                 other while keeping aspect ratio, if both height and width are 0, the full size
*                 image will be returned)
*        .height - height to resize image to
*        .quality - quality of resized image, defaults to 100
*       .outputType - type of output returned. defaults to file URIs.
*                      Please see ImagePicker.OutputType for available values.
*/
ImagePicker.prototype.getPictures = function(success, fail, options) {
    if (!options) {
        options = {};
    }

    this.validateOutputType(options);

    var params = {
        maximumImagesCount: options.maximumImagesCount ? options.maximumImagesCount : 15,
        width: options.width ? options.width : 0,
        height: options.height ? options.height : 0,
        quality: options.quality ? options.quality : 100,
        allow_video: options.allow_video ? options.allow_video : false,
        title: options.title ? options.title : 'Select an Album', // the default is the message of the old plugin impl
        message: options.message ? options.message : null, // the old plugin impl didn't have it, so passing null by default
        outputType: options.outputType ? options.outputType : this.OutputType.FILE_URI,
        disable_popover: options.disable_popover ? options.disable_popover : false // Disable the iOS popover as seen on iPad
    };

    return cordova.exec(success, fail, "ImagePicker", "getPictures", [params]);
};

window.imagePicker = new ImagePicker();
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • mts10806

    2017/08/31 14:57

    現在組まれているソースコードをご提示願います。(エラーがでるものや製造・検証途中のものでも構いません)

    キャンセル

  • agepan

    2017/08/31 16:06

    コードを追記させていただきました。HTML上の画像取り込みボタンを押すと「getImage()」を実行して、上記のコードを走らせます。よろしくお願いいたします。

    キャンセル

まだ回答がついていません

同じタグがついた質問を見る

  • JavaScript

    19775questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    7948questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • Monaca

    1087questions

    「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

  • Cordova

    462questions

    Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。