PHPのGDで質問です。

iphoneの写真のバイナリデータをimagecreatefromstringに渡し、GDで縮小させてますが
恐らく、Exifの回転情報のせいで、勝手に写真が90度回転してしまいます。
これを回転させないようにするにはどうすればよいでしょうか?
※設置サーバーにソフトはインストール不可能なため、PHP+GDで完結するやり方でお願い致します。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/07/26 14:46:27
  • 終了:2014/08/02 14:50:03
id:makocan

また、回転されることを計算させてGDで再回転とかはなしでお願いします。

回答(1件)

id:TransFreeBSD No.1

TransFreeBSD回答回数664ベストアンサー獲得回数2662014/07/27 19:25:06

ポイント200pt

ImageMagickは使えませんか?使えるなら下記参考に、本当に回転する必要なければいきなりsetImageOrientationすれば良いと思います。
http://qiita.com/hiro_y/items/0476bcf39a77ca184009

ImageMagick使えなければpelというのがあるらしいです。
http://www.phppro.jp/phptips/archives/vol44/1
http://akabeko.me/blog/2009/12/php-%E3%81%A7-exif-%E3%82%92%E8%AA%AD%E3%82%80-3/
回転情報は"PelTag::ORIENTATION"です。

上記も使えないとか面倒くさいと言う場合、exif情報をバッサリ消す力技もあるらしいです。
http://qiita.com/mugng/items/416eaacf01e424cdca29
まあ、もしかすると今この状態なので回転してるなら以下で戻すと良いかも。
http://d.hatena.ne.jp/matoyan/20080703/1215038558

  • id:jan8
    >>
    恐らく、Exifの回転情報のせいで、勝手に写真が90度回転してしまいます。
    <<
    これは本当でしょうか?元の画像を回さないといけないのでは?
    同様の内容と思われる記事を見つけたのですが、縦位置で撮影した画像は横位置のまま保存されているそうです。(iphone側では回転処理を加えていない)(もしかしてiphone5で仕様が変わった?)
    >>
    縦位置の画像が横位置になっていた。(中略)縦位置で撮影した場合、画像データ自体は横位置のままで、Exif情報に90°回転するという情報が追加されている(中略)imagecreatefromstring()で画像リソース化するとexif_read_data()が使えない。(中略)file_put_contents($file_path, $parse_data);で保存すればよかったのでした。
    [http://www.netoven.com/det.php?d=20120927134402:title]
    <<

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません