MacBSの日常生活的日記

PHPでExif除去

画像の遅延読み込みでほんの少し高速化をした拙ブログですが、次のテーマは画像サイズの縮小ということで、フォト蔵サムネイルのExif除去をやることにしました。

普通にWordPressのメディアライブラリにアップロードしているのであればプラグインで対応可能なんですが、ここではフォト蔵からPHP経由でサムネイルのみ取得して自前のレンタルサーバー@さくらインターネットに保存しているんですよね。
そこでPHPでExifを除去する方法を探る必要がありました。

まず、除去自体はImageMagick使うことにしますが、 さくらインターネットでは初期状態では使えません。
サーバーコントロールパネルからphp.iniを編集して、以下の行を追加する必要があります。

extension = imagick.so

お次はPHPですが、ここまでくればあとはImageMagickの関数を使うだけです。

$imagick = new Imagick($filename);
$imagick->stripImage();
$imagick->writeImage($filename);

stripImage()を使うことで画質の部分に劣化が見られたという情報もありましたが、私が試した感じでは特に問題なさそうです。
そもそもファイルサイズを小さくすること優先ですから、分からない程度の劣化なら問題ないでしょう。
画像にもよりますが、これでファイルサイズは平均して2/3くらい(下の例だと95KB→53KB)になってくれました。

すでにサムネイル取得してしまったファイルについては一度ローカルに落としてきて、ImageOptimを使ってExif除去しました。
一括削除して再取得しても良かったんですが、それだとフォト蔵に負荷を掛けてしまいますしね。

そういえば明日からフォト蔵プラスが始まります。
これまでのように等倍画像が保持されなくなりますが、当面は無料プランで行ってみようかな。
等倍画像が必要な時は随時、メディアライブラリのほうを使おうと思いますから、そっちはそっちでプラグインでExif除去対策が必要そうですけどね。

モバイルバージョンを終了