どうも、スマコマのコマ太郎です。
WordPress に画像をアップロードすると、画質にざらつきが出たり、ぼやけたり、文字周りににじみが出たことがありませんか?
ぼくは旅行サイトも持っていて、そのサイトにアップした写真の青空部分にシマシマが出て困りました。
ざらつきのある青空
これは WordPress が jpg画像のデータサイズを自動圧縮しているために起こる現象でした。
今の写真は画質が高くリサイズされても通常、目視ではわかりません。リサイズしてくれることで軽量化されるので、メリットのほうが大きいです。
しかし、アップロード前にウェブ用に圧縮していると、この機能が邪魔してしまうわけです。Photoshop の機能を使ってウェブ用に圧縮していると、もろハマると思います。
JPG画像の画質が落ちる場合の対処法
リサイズ機能をオフにする
WordPress 4.5 以降ではアップロードされたとき、jpg画像だと自動的に 82% の圧縮率でリサイズしてしまいます。さらにその前のバージョンでは、90% 品質でした。
この機能をオフにするには、functions.php に以下のコードを追加してください。
1 2 |
// JPG画像の品質圧縮率の制御 add_filter('jpeg_quality', function($arg){return 100;}); |
functions.php の場所
functions.php は、WordPress管理メニューの [外観]-[テーマエディター] を開き、functions.php をクリックすることで編集することができます。
コードを挿入する位置
コードを挿入する位置ですが、どこでも構いませんが分かりやすいように最後の方がいいでしょう。ただ通常最終行には、PHPの閉じタグ( ?> )があることが多いので、その前までにしてください。
リサイズ機能をオフにしたら、画像を再アップロードする
自動リサイズは、画像のアップロード時に適用されるので、リサイズされた <元画像(WordPress上でのオリジナル)> を元に戻すことはできません。(ギャグじゃないよ)
jpgの圧縮は不可逆なので、元には戻らないのです。なお jpgの品質については、こちらの記事に書いてます。「ブログを作るなら知っておきたい画像ファイル形式の話(JPG、PNG、GIF)」
だからコードを挿入してから、問題のある画像は、再度アップロードする必要があります。
元画像ではなく生成されたサムネイルの画質だけの問題であれば、「Regenerate Thumbnails」プラグインを使えば再生成させることは可能ですよ。
ちなみに return 100; の数値が圧縮品質の値(%)です。この値を小さくすると圧縮率を変更することも可能です。まあ下げるというニーズはあまりないと思いますけどね(笑)