数日間嵌ったのでメモ💦
laradockで画像のアップロード機能を実装していたが、どうしても画像が横向きに表示されてしまう…
画像の向きに関して、こちらに分かりやすい解説がありました。なるほど…
https://qiita.com/k-holy/items/2ed10bdcf53181bb695d
EXIFタグのOrientationは、カメラで撮影した時に画像の向きに関する情報をファイルに埋め込むことで、アプリケーション側で表示する際にその情報を見て向きを補正するための仕様です。
しかし、これが設定された画像ファイルをサーバ側で受け取って縮小する際、GD等による加工の過程でEXIFタグの情報が失われてしまうために、画像の向きが補正できなくなってしまうわけです。
なので、まず exif_read_data() を使ってEXIFのOrientation値を読み込み、それに併せてGD関数で画像を反転/回転させた後、縮小します。
👇こちらを参考にintervention imageインストール
https://blog.capilano-fw.com/?p=1574#orientate
画像の向きを回転させてくれるorientateを実行。しかしエラー発生
Reading Exif data is not supported by this PHP installation.
laradockはデフォルトではexif extensionが有効になっていないらしい…
試したこと
👇こちらのツイートを参考に設定変更
https://twitter.com/tuk_nagayan/status/1208642383732019200
php-fpmデイレクトリのdockerfile編集
ARG_INSTALL_EXIF=false
↓
ARG_INSTALL_EXIF=true
コンテナ再ビルド
docker-compose build —no-cache php-fpm
しかし上記エラー変わらず…なんでインストールできんのや…
とりあえずphp.iniファイルも編集(必要かはわからない)
extension=php_mbstring.dll
extension=php_exif.dll
上記の拡張機能のコメントアウト外す
解決
👇下記のイシューを参考に追加で修正
https://github.com/spatie/laravel-medialibrary/issues/280
laradock/.env編集
PHP_FPM_INSTALL_EXIF=false
↓
PHP_FPM_INSTALL_EXIF=true
再びビルド
docker-compose build --no-cache php-fpm
無事インストール成功…💦