アップロードされた畫像をローカルで一括してサイズ変更し、サムネイルを作成するスクリプトを作成しました。問題は、一部の畫像が垂直方向に配置されているが、サイズ変更後に水平方向に回転する場合です。
これは、畫像の exif の向きが原因で発生します。 PHP 経由で畫像から方向 exif を削除する簡単な方法はありますか? Imagick でそれができることは知っていますが、インストールできない/したくないのです。
それなしで解決策はありますか?
現(xiàn)在、このような畫像を畫像エディタで開き、exif 情報(bào)を保持せずに再保存することで、この問題を解決しています。その後、スクリプト內(nèi)でそのような畫像のサイズを変更すると、結(jié)果は正しくなります。
つまり、サイズを変更する前に、PHP スクリプトで畫像から exif を削除したいだけです。
exifの方向を確認(rèn)する機(jī)能を試してみました:
リーリーしたがって、追加のライブラリをインストールせずに、おそらく既に含まれている GD などを使用して、Imagick 部分を別のものに置き換える必要があります。
それでは、exif を削除する代わりに畫像を回転することにしましたが、結(jié)果的には同じ効果が得られました。そこで、exif 方向の値 (存在する場合) を確認(rèn)し、その値に基づいて imagerotate を使用して畫像のサイズを変更します。結(jié)果は完璧であり、追加のインストールやライブラリは必要ありません。
リーリー