2016-05-09 16 views
1

ng-file-uploadを使ってサーバにファイルをアップロードしようとしていますが、サイズを変更してクライアント側のpngに変換しています。ドキュメントから、typeプロパティがimage/pngに設定されたngf-resize属性を使用してこれが可能であるように思えます。ng-file-uploadはjpgイメージをpngに変換しません

ドキュメントここではhttps://github.com/danialfarid/ng-file-upload/blob/master/README.mdtypeと記載しています。「タイプは任意ですが、指定したイメージタイプのフォーマットに変換してください。」

私はこれをしようとすると、それはPNGソースファイルで動作しますが、私はJPGがファイルを使用している場合、それは代わりに私はJavascriptコンソールでこのエラーを取得し、PNGに変換しません:

There were invalid base64 characters in the input text. 
Valid base64 characters are A-Z, a-z, 0-9, NaNExpect errors in decoding. 

ここに私のコード:

<div ngf-drop ngf-select ng-model="file" class="drop-box" 
    ngf-drag-over-class="'dragover'" ngf-multiple="false" 
    ngf-allow-dir="false" accept="image/jpeg,image/jpg,image/png" 
    ngf-pattern="'image/jpeg,image/jpg,image/png'" 
    ngf-resize="{width: 100, height: 100, quality: .8, centerCrop: true, type: 'image/png'}"> 

ng-file-uploadを使ってjpgをpngに変換することは可能ですか?それともコードに問題がありますか?私の目標は、ブラウザが変換を行うようにして、私のサーバだけがpng画像を受信することです。

答えて

3

問題は、プラグインがjpegでないために失敗するpngファイルのexifデータを復元しようとしていることです。これを避けるには、次のようにします:

<div ngf-drop ngf-select ng-model="file" class="drop-box" 
    ngf-drag-over-class="'dragover'" ngf-multiple="false" 
    ngf-allow-dir="false" accept="image/jpeg,image/jpg,image/png" 
    ngf-pattern="'image/jpeg,image/jpg,image/png'" 
    ngf-resize="{width: 100, height: 100, quality: .8, 
    centerCrop: true, type: 'image/png', restoreExif: false}"> 
関連する問題