プログラミングTweetこんにちは、エンジニアのさもです画像処理をwebサービスにしてみたのですが、なぜかスマホで撮影した画像が横向きになって出力されてしまいました。調べたので、対処方法をまとめておきます。スポンサーリンクまず、なぜ横向き担ってしまうかというと、そもそも画像が横向きだったから。スマホでは、「横向き」という情報を画像が持っているので、向きを整えて表示しています。その情報は、Exifという規格で保存された画像データに含まれていので、画像処理を行う場合は、まずこの情報を見て、画像を回転させておく必要があります。www.weblio.jpまた、Exifにどんな情報があるのかというと、以下のサイトで一覧を見ることができます。1334}こんな感じの辞書型データが出力されます。キーが上記サイトのTAGIDで、valueがその値になります。全ての画像で取れるわけではなくて、何も返ってこない、空の辞書が返ってくる、エラーになるなどバリエーションがあります。実効画像高さということらしいです。欲しい情報は274っぽいですね。orientationという名前の属性らしいです。orientationの意味はこちらのサイトでみれました。bottom上記の表で1をみてみると、0行目がトップで、0列目が左側です。普通の向きの画像ですね。5のところをみると、0行目が左側、0列目がトップということなので、左右反転して、右に90度向きが変わった画像ということですね。頭の体操になりそうです。filter1(img)new_img.save("./images/new_test.jpg")変換用の辞書を定義しておいて、画像を読み込み、exif情報があればそれにしたがって向きを変えます。tryで例外処理を行っているのは、上でも書きましたが、_getexif()でエラーが出る場合があるからです。png画像や、img.convert(“RGB”)した画像へ._getexif()をするとエラーになりました。png画像はしょうがないですが、convert(“RGB”)は向きを整えてからにしましょう。最後にずっと画像が横になる問題は気になっていたのですが、やっと解決できました。railsで画像アップロードしても、特に横向きになったという経験はないのですが、ちゃんとライブラリが内部で変換してくれているのですかね。ありがたや~PCで画像を探してきて、それを加工して試してみるだけではこの処理は不要だと思うのですが、webサービスとして公開するときには少し注意が必要ですね。読者登録をしていただけると、ブログを続ける励みになりますので、よろしくお願いします。透過PNGに変換するこんにちは、エンジニアのさもです。先日デザイナーさんに、透...2017-10-06初めてのTensorFlow入門~手書き文字を綺麗なフォントに変換する~TensorFlowの入門記事です。今回は、畳み込みニューラルネット...2017-10-06初めてのTensorFlow入門~畳み込みニューラルネットワーク~TensorFlowの入門記事です。繰り返し処理の高速化を2種類紹介しますpythonを使った画像処理の入門記事です。2値化と3つの閾値(アルゴリズム)たちpythonを使った画像処理の入門記事です。»さもしのプロフィールRubyを使うWebエンジニアです。仕事の幅を広げようとPHPも勉強します。趣味でProcessing(p5.js)をやっていて、入門サイトを作りました。当サイトに掲載されている広告について当サイトでは、第三者配信の広告サービスGoogleAdsenseを利用しています。使用することがあります。Googleアドセンスに関して、このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらをクリックしてください。当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。当サイトでは、スパム・荒らしへの対応として、コメントの際に使用されたIPアドレスを記録しています。これはブログの標準機能としてサポートされている機能で、スパム・荒らしへの対応以外にこのIPアドレスを使用することはありません。メールアドレスとURLの入力に関しては、任意となっております。全てのコメントはサイト管理人が事前にその内容を確認し、承認した上での掲載となりますことをあらかじめご了承下さい。加えて、次の各号に掲げる内容を含むコメントは管理人の裁量によって承認せず、削除する事があります。特定の自然人または法人を誹謗し、中傷するもの。極度にわいせつな内容を含むもの。禁制品の取引に関するものや、他者を害する行為の依頼など、法律によって禁止されている物品、行為の依頼や斡旋などに関するもの。その他、公序良俗に反し、または管理人によって承認すべきでないと認められるもの。さもし初出掲載:2017年8月24日はてなブログをはじめよう!s-uotani-zetakansuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。