2013-07-31 35 views
7

正しいローテーションでアップロードする前にイメージをレンダリングする際にJavaScriptに問題があります。画像魔法使いをexifデータ上でのみ正しい回転をするようにレンダリングすると、ブラウザはそれを使用しないようです。イメージローテーションが正しくありません

JavaScriptを使用してウェブサイト上に画像が表示されているときに、システム上のさまざまな変化を見ることができます。

コードは非常に基本的なものです:

あなたは、この回転のバグを修正するための簡単な方法を知っていますか?

LbEmeraude.handleImage = function (f) { 
    if (f.type.match('image.*')) { 
     var reader = new FileReader(); 
     reader.onload = (function (file) { 
      return function (e) { 
       var image = {}; 
       image.dataAsUrl = e.target.result; 
       LbEmeraude.renderImage(image); 
      }; 
     })(f); 
     var image = reader.readAsDataURL(f); 
    } 
} 

LbEmeraude.renderImage = function (image) { 

    var eImage = LbEmeraude.createImgElement(image.dataAsUrl); 
    $('someElement').append(eImage); 

}; 

LbEmeraude.createImgElement = function (src) { 
    var image = document.createElement("img"); 
    image.src = src; 
    return image; 
} 

ありがとうございました。

+0

この使用しているどのようなライブラリ:あなたはそれをハックしたい場合は希望があるよう

は、しかし、それは見えますか?それはノードのように見えるし、それはちょうどプレーンなバニラのjavascriptを使用しているように見えません。 LbEmeraudeのgoogle検索は、この質問をトップの結果として返します。 – MatthewMartin

+0

LbEmeraudeは私のライブラリです... jQueryの一部を含むバニラのJavaScriptです。 –

答えて

2

何を求めていることは新しいものではありません...これをチェックアウト:https://bugzilla.mozilla.org/show_bug.cgi?id=298619

吸盤は2005年にオープンした、まだ解決されていません。この記事は古いですが、本当に堅牢です:http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/

しかし、そこのキーパーツは、HTMLのimgタグのコンテキストでブラウザが通常はexifローテーションを適用しないことに注意していますが、それ自身のタブで画像を開きます。

現在のところ、ブラウザはデフォルトでそれを行いません。そのように思えるウェブアプリケーションは、ほとんどがサーバー上でその価値を得て、さまざまな資産を提供しています。 Accessing JPEG EXIF rotation data in JavaScript on the client side

+0

Nick –

+0

@ありがとうございました。私は余分な時間がJS(それは悪夢のように見える)でそのEXIF回転のくそを掘るために持っていないが、あなたがうんざりに遭遇し、私はまたデバッグを助けることができます。 –

関連する問題