🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

1回答

2252閲覧

carrierwave + s3 + minimagick を使った画像アップロードで画像が横になる

akioneway94

総合スコア2

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2019/10/04 06:58

編集2019/10/05 17:40

実現したいこと
carrierwaveでs3にアップロードした画像の向きを正しくしたい

困っていること

  • s3にアップロードされた画像が90度回転して表示される
  • s3にアップロードされた時点で画像が回転している

試したこと
色々調べたところ画像にはexifという情報が含まれており、
その中のorientationが画像の向きを指定しているということがわかりました。
そこでexifの情報をidentify -verboseコマンドを使って調べてみました。

横になってしまう画像のexif情報

Image: /Users/nakashima/Downloads/IMG_1550.JPG Format: JPEG (Joint Photographic Experts Group JFIF format) Mime type: image/jpeg Class: DirectClass Geometry: 1538x2048+0+0 Resolution: 72x72 Print size: 21.3611x28.4444 Units: PixelsPerInch Colorspace: sRGB Type: TrueColor Base type: Undefined Endianess: Undefined Depth: 8-bit Channel depth: Red: 8-bit Green: 8-bit Blue: 8-bit Channel statistics: Pixels: 3149824 Red: min: 0 (0) max: 255 (1) mean: 114.853 (0.450402) standard deviation: 65.7258 (0.257748) kurtosis: -0.673733 skewness: 0.553234 entropy: 0.963827 Green: min: 10 (0.0392157) max: 255 (1) mean: 113.441 (0.444867) standard deviation: 59.6767 (0.234026) kurtosis: -0.131465 skewness: 0.745821 entropy: 0.956912 Blue: min: 7 (0.027451) max: 255 (1) mean: 111.084 (0.435625) standard deviation: 52.9149 (0.207509) kurtosis: 0.159384 skewness: 0.7356 entropy: 0.949393 Image statistics: Overall: min: 0 (0) max: 255 (1) mean: 113.126 (0.443631) standard deviation: 59.4391 (0.233095) kurtosis: -0.23992 skewness: 0.678953 entropy: 0.956711 Rendering intent: Perceptual Gamma: 0.454545 Chromaticity: red primary: (0.64,0.33) green primary: (0.3,0.6) blue primary: (0.15,0.06) white point: (0.3127,0.329) Matte color: grey74 Background color: white Border color: srgb(223,223,223) Transparent color: none Interlace: None Intensity: Undefined Compose: Over Page geometry: 1538x2048+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 95 Orientation: TopLeft Properties: date:create: 2019-09-25T18:16:05+00:00 date:modify: 2017-08-14T10:39:28+00:00 exif:ApertureValue: 8074/3549 exif:BrightnessValue: 82506/12707 exif:ColorSpace: 65535 exif:ComponentsConfiguration: 0, 0, 0, 1 exif:CustomRendered: 4 exif:DateTime: 2017:08:13 14:13:03 exif:DateTimeDigitized: 2017:08:13 14:13:03 exif:DateTimeOriginal: 2017:08:13 14:13:03 exif:ExifOffset: 194 exif:ExifVersion: 48, 50, 50, 49 exif:ExposureBiasValue: 0/1 exif:ExposureMode: 0 exif:ExposureProgram: 2 exif:ExposureTime: 1/120 exif:Flash: 16 exif:FlashPixVersion: 48, 49, 48, 48 exif:FNumber: 11/5 exif:FocalLength: 287/100 exif:FocalLengthIn35mmFilm: 32 exif:GPSAltitude: 43475/2322 exif:GPSAltitudeRef: 0 exif:GPSDateStamp: 2017:08:13 exif:GPSDestBearing: 19748/349 exif:GPSDestBearingRef: T exif:GPSImgDirection: 33595/142 exif:GPSImgDirectionRef: T exif:GPSInfo: 730 exif:GPSLatitude: 33/1, 4959/100, 0/1 exif:GPSLatitudeRef: N exif:GPSLongitude: 130/1, 4290/100, 0/1 exif:GPSLongitudeRef: E exif:GPSSpeed: 0/1 exif:GPSSpeedRef: K exif:GPSTimeStamp: 5/1, 13/1, 300/1 exif:LensMake: Apple exif:LensModel: iPhone 7 front camera 2.87mm f/2.2 exif:LensSpecification: 287/100, 287/100, 11/5, 11/5 exif:Make: Apple exif:MeteringMode: 5 exif:Model: iPhone 7 exif:Orientation: 1 exif:PhotographicSensitivity: 25 exif:PixelXDimension: 1538 exif:PixelYDimension: 2048 exif:ResolutionUnit: 2 exif:SceneCaptureType: 0 exif:SensingMethod: 2 exif:ShutterSpeedValue: 5567/806 exif:Software: 10.1.1 exif:SubSecTimeDigitized: 989 exif:SubSecTimeOriginal: 989 exif:WhiteBalance: 0 exif:XResolution: 72/1 exif:YResolution: 72/1 icc:copyright: Copyright Apple Inc., 2015 icc:description: Display P3 jpeg:colorspace: 2 jpeg:sampling-factor: 2x2,1x1,1x1 signature: 83b2adecbec9e8ea692f4e27bdec8cf642802e99c8e31efb26c3937c78fa4ffa tiff:Make: Apple tiff:Model: iPhone 7 tiff:Orientation: 6 tiff:ResolutionUnit: 2 tiff:XResolution: 72.000000 tiff:YResolution: 72.000000 xmp:BrightnessValue: 6.492957 xmp:ColorSpace: 65535 xmp:CustomRendered: 4 xmp:DateTimeDigitized: 2017:08:13 14:13:03 xmp:DateTimeOriginal: 2017:08:13 14:13:03 xmp:ExposureBiasValue: 0.000000 xmp:ExposureMode: 0 xmp:ExposureProgram: 2 xmp:ExposureTime: 0.008333 xmp:FocalLenIn35mmFilm: 32 xmp:MeteringMode: 5 xmp:PixelXDimension: 3088 xmp:PixelYDimension: 2320 xmp:SceneCaptureType: 0 xmp:SensingMethod: 2 xmp:ShutterSpeedValue: 6.906948 xmp:SubsecTimeDigitized: 989 xmp:SubsecTimeOriginal: 989 xmp:WhiteBalance: 0 Profiles: Profile-exif: 1026 bytes Profile-icc: 548 bytes Profile-xmp: 1827 bytes Artifacts: verbose: true Tainted: False Filesize: 913725B Number pixels: 3.14982M Pixels per second: 34.5825MP User time: 0.090u Elapsed time: 0:01.091 Version: ImageMagick 7.0.8-59 Q16 x86_64 2019-08-05 https://imagemagick.org

正しく表示される画像のexif情報

Image: /Users/nakashima/Downloads/IMG_0033.JPG Format: JPEG (Joint Photographic Experts Group JFIF format) Mime type: image/jpeg Class: DirectClass Geometry: 960x1280+0+0 Resolution: 72x72 Print size: 13.3333x17.7778 Units: PixelsPerInch Colorspace: sRGB Type: TrueColor Base type: Undefined Endianess: Undefined Depth: 8-bit Channel depth: Red: 8-bit Green: 8-bit Blue: 8-bit Channel statistics: Pixels: 1228800 Red: min: 0 (0) max: 255 (1) mean: 113.394 (0.444681) standard deviation: 63.4498 (0.248823) kurtosis: -0.631399 skewness: 0.493041 entropy: 0.978297 Green: min: 1 (0.00392157) max: 255 (1) mean: 106.749 (0.418625) standard deviation: 56.4171 (0.221243) kurtosis: -0.506482 skewness: 0.504441 entropy: 0.968426 Blue: min: 0 (0) max: 255 (1) mean: 104.294 (0.408995) standard deviation: 58.3868 (0.228968) kurtosis: -0.428567 skewness: 0.602475 entropy: 0.968109 Image statistics: Overall: min: 0 (0) max: 255 (1) mean: 108.146 (0.4241) standard deviation: 59.4179 (0.233011) kurtosis: -0.497413 skewness: 0.546209 entropy: 0.971611 Rendering intent: Perceptual Gamma: 0.454545 Chromaticity: red primary: (0.64,0.33) green primary: (0.3,0.6) blue primary: (0.15,0.06) white point: (0.3127,0.329) Matte color: grey74 Background color: white Border color: srgb(223,223,223) Transparent color: none Interlace: None Intensity: Undefined Compose: Over Page geometry: 960x1280+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 95 Orientation: TopLeft Properties: date:create: 2019-09-26T07:25:26+00:00 date:modify: 2017-09-03T20:02:47+00:00 exif:ColorSpace: 1 exif:ComponentsConfiguration: 0, 0, 0, 1 exif:ExifOffset: 90 exif:ExifVersion: 48, 50, 50, 49 exif:FlashPixVersion: 48, 49, 48, 48 exif:Orientation: 1 exif:PixelXDimension: 960 exif:PixelYDimension: 1280 exif:ResolutionUnit: 2 exif:SceneCaptureType: 0 exif:XResolution: 72/1 exif:YResolution: 72/1 icc:copyright: Copyright (c) 1998 Hewlett-Packard Company icc:description: sRGB IEC61966-2.1 icc:manufacturer: IEC http://www.iec.ch icc:model: IEC 61966-2.1 Default RGB colour space - sRGB jpeg:colorspace: 2 jpeg:sampling-factor: 2x2,1x1,1x1 signature: d255332d1a1595f3ac49045ed2bb03be9ab071228f80e6e21970506d76924f4a tiff:Orientation: 1 tiff:ResolutionUnit: 2 tiff:XResolution: 72.000000 tiff:YResolution: 72.000000 xmp:ColorSpace: 1 xmp:PixelXDimension: 960 xmp:PixelYDimension: 1280 xmp:SceneCaptureType: 0 Profiles: Profile-exif: 186 bytes Profile-icc: 3144 bytes Profile-xmp: 828 bytes Artifacts: verbose: true Tainted: False Filesize: 401876B Number pixels: 1228800 Pixels per second: 26.8809MP User time: 0.040u Elapsed time: 0:01.045 Version: ImageMagick 7.0.8-59 Q16 x86_64 2019-08-05 https://imagemagick.org

このようにexif: orientationの値はどちらも1となっており、
ここが原因だと判断ができませんでした。
そこで思ったのが、s3にアップロード後の画像のexif: orientation1ではなくなっているのではないかとも判断しましたが、やはりexif情報は1となっておりました。
(ちなみにs3に保存された画像の拡張子は全てjpeg形式で保存されます。
jpegに問題があるのかと思い、画像のもともとの拡張子を維持したままs3にアップロードされるようにuploader.rbで設定しましたが改善できませんでした。)

他の画像のexif情報を調べてみて
一つ気になったところとしてtiff: orientationの情報が1以外になっている画像が回転してしまう性質があるということがわかりました。何か関係があるのでしょうか?

  • tiff: orientationは画像が回転してしまうのに何か関係があるのか?
  • もしそうであるのならば rails内でrubyのコードを用いて、tiff: orientationの値を取得していい感じに修正するようにするようにすれば良いのか?
  • 他のところに何か原因があるのか?
  • s3の設定を修正しなければならないのか?

以上の点についてご回答いただけると大変助かります
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

アップロードした写真を撮影したのは、スマホか何かですか?

iPhone からの写真限定であれば、

iPhoneからアップロードしたJPEG写真が横向きになる問題(EXIF, Orientation)

が、参考になると思います。

投稿2019/10/05 21:39

CHERRY

総合スコア25216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問