2017-03-09 17 views
3

サムスンS7を使用して写真を撮って自分のアプリケーションにアップロードしようとしています。しかし、画像はアップロード時に回転しています。ギャラリーからも画像を選択していてもアップロード時に回転しています。 jqueryコードから修正できるものはありますか?提案してください。事前のおかげでアップロード時に画像がデフォルトでローテーションされています

HTML:

<div class="photo-div" id="photo"> 
       <img id="uploadimage" src="" hidden=""> 
      </div> 

<label id="files-label" for="files" class=" myprofile-btn-bold">Replace Image</label> 
<input id="files" style="display:none;" type="file" accept="image/*" onchange="readURL(this);"> 

のjQuery:

function readURL(input) { 

    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 

     reader.onload = function (e) { 
      $('#files-label').html('Replace Image'); 
      $('.photo-image').removeClass('photo-image'); 
      $('#uploadimage').attr('src', e.target.result); 
      $("#headshot-message").hide(); 
      $("#headshot-cancel").hide(); 
      $('#noimage-label').addClass('hidden'); 
     } 

     reader.readAsDataURL(input.files[0]); 
    } 
} 
+0

どのようにアップロードしているかを確認するコードスニペットが表示されますか? – maksymiuk

+0

こんにちは@maksymiuk、更新された質問を見つけてください。もし私がもっと必要なものがあれば私に教えてください –

+0

jqueryはかなり簡単です、何も私にはイメージが回転する原因になりません。 e.target.resultを#uploadimage要素に追加すると、サーバーにアップロードしていますか、イメージが回転していますか? – KFE

答えて

2

お使いの携帯電話のカメラアプリは、振り向くと、あなたの視点からそれらを見るように画像を保存しませんが、オリエンテーションセンサーからEXIF orientation dataでフラグを立てるだけです。この情報はギャラリーアプリで解釈されますが、ブラウザは無視して、センサーの視点で撮影した写真を表示します。

あなたはimagemagick auto-orientと、サーバー上のEXIFデータに応じた画像を好転させることができます:この記事で説明したように

convert uploadedImage.jpg -auto-orient turnedImage.jpg 

またはjQueryを使って、クライアント側で:

https://stackoverflow.com/a/28843763/2346308

+0

大きなサイズの画像ではうまくいきますが、先に起こっていないこの実装を追加した後は、小さいサイズの画像が回転しています。 –

+0

JQueryやImageMagickのどの実装を使ったのですか?これらの小さな画像が正しい向きのフラグを大きなものとして設定しているかどうか確認できますか?あなたはこのウェブサイトを使用できます:http://exif-viewer.com/ –

+0

JQuery oneを使用しました –

関連する問題