実現したいこと
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: orientation
は1
ではなくなっているのではないかとも判断しましたが、やはりexif情報は1
となっておりました。
(ちなみにs3に保存された画像の拡張子は全てjpeg形式で保存されます。
jpeg
に問題があるのかと思い、画像のもともとの拡張子を維持したままs3にアップロードされるようにuploader.rbで設定しましたが改善できませんでした。)
他の画像のexif情報を調べてみて
一つ気になったところとしてtiff: orientation
の情報が1
以外になっている画像が回転してしまう性質があるということがわかりました。何か関係があるのでしょうか?
tiff: orientation
は画像が回転してしまうのに何か関係があるのか?- もしそうであるのならば rails内でrubyのコードを用いて、
tiff: orientation
の値を取得していい感じに修正するようにするようにすれば良いのか? - 他のところに何か原因があるのか?
- s3の設定を修正しなければならないのか?
以上の点についてご回答いただけると大変助かります
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。