2016-07-08 1 views
0

ライブラリでは、スケーリングのパラメータがmaxSizeで、これは両方のディメンションのうち最も長いものに適用されます。一次元で拡大縮小する回避策は、所望の高さまたは幅の結果を得るために元の画像サイズに基づいてmaxSizeを計算することによってonSubmittedコールバックで手動でscaleImage()を実行することですFineUploaderサムネイルのサイズを1次元(つまり、maxSizeではなくmaxHeightまたはmaxWidth)に調整します。

onSubmittedコールバックの内部でaddFiles()を使用すると別のonSubmittedイベントがトリガーされることがあります。 addFiles()を使用してサムネイルを追加すると、UIリストにサムネイルが表示され、別のonSubmittedがトリガされ、別のサムネイルが生成されてループを継続します。

IはuploadStoredFiles()が別onSubmittedイベントをトリガすることなく、サムネイルなどを示すことなく、呼び出されたとき(240個の画素のmaxHeightと320個のピクセルののmaxWidth)によって再訓練サムネイルを生成し、別S3バケットにサムネイルをアップロードする必要がありますUIファイルリストの「重複」エントリ。 Fine-Uploaderでこれを行う最善の方法は何ですか?


いくつかのサンプルコード:

  function makeThumbnail() { 
      // FIXME to avoid duplicate, put this in the compression success 
      var thumbnailPromise = uploader.scaleImage(id, { 
       maxSize: 123, 
       quality: 45, 
       customResizer: !qq.ios() && function (resizeInfo) { 
       return new Promise(function (resolve, reject) { 
        pica.resizeCanvas(resizeInfo.sourceCanvas, resizeInfo.targetCanvas, {}, resolve) 
       }); 
       } 
      }); 
      thumbnailPromise.then(
       function (blob) { 
        console.log(URL.createObjectURL(blob)); 
        uploader.addFiles(blob); 
       }, 
       function (err) { 
       } 
      ); 
      } 
+0

この「サムネイル」を生成するときに、新しい 'File'または' Blob'を 'addFiles'に提出しますか? –

+0

これは 'scaleImage'のPromiseから来ています。私が間違っていなければ、それはブロブです。私はいくつかのコードで質問を更新しました。 – dtgq

答えて

1

あなたはaddFilesにスケールBlobを渡す前に、単にBlobオブジェクト、blob.myScaledImage = trueのようなものにカスタムプロパティを追加します。次に、onSubmittedコールバックを処理する場合は、getFile API methodを使用して関連付けられたBlobを取得します。 Blobにカスタムプロパティが含まれている場合は、カスタムプロパティを再スケールしないでください。

+0

この 'blob.myScaledImage = true'はうまくいきました。 1つの投稿で複数の部分からなる質問をして申し訳ありませんが、それはUIに重複した項目として表示されます(元の画像とサムネイルの両方に表示されます)。どのようにしてmaxHeightとmaxWidthの機能を実装するべきか私がこれらの質問のために別の投稿をしなければならないなら、私は先に進んでこれに答えてマークします。ありがとう! – dtgq

+0

もう必要のないものを単にキャンセルしないのはなぜですか? –

+0

元の画像とそのサムネイルの両方をアップロードする必要があります – dtgq

関連する問題