Chrome 68 はHTTPのサイトが警告表示されることが話題になっていましたが、他にもこんなことがあったようです。
どうやらこれまで無視されていた画像ファイルへ埋め込まれたICCプロファイルが反映されるようになった結果、表示が変化してしまったようです。
自分の周りでもユーザーがアップロードした画像を表示しているサイトで同じことが起きました。 やったね。
元と同じ表示を得るには、このICCプロファイルを削除してやれば良さそうです。 (これが正しい対応かにはやや疑問が残りますが)
そのサイトでPHPで画像を処理するときにはGDを使用しています。
このGDではICCプロファイルは無視されるようです。
つまり? 一度GDで何か処理してやれば無視できる。
<?php public static function normalize_image($baseImagePath, $outputImagePath) { // 一度GDで処理することでPNGのICCプロファイルを削除する $workimage = imagecreatefrompng($baseImagePath); imagesavealpha($workimage,true); imagepng($workimage, $outputImagePath); imagedestroy($workimage); return $outputImagePath; }
相当ダーティですが、これでICCプロファイルを消せました。
正しさより結果、この位でいい。
尚、この記事を書いていて、PHPのコードハイライトを有効にするには <?php
が必要であることに気づきました。
一つ賢くなった。