WordPressでアップロードした画像の圧縮率を変更する
WordPressで画像をアップロードしてページを見ると
どうにもその画像の画質が悪い。。。
この画質の劣化の原因と解決方法を調べました。
劣化の原因はWordPressの標準画質設定
アップした画像は
自動的にリサイズ(サムネイル・中・大サイズなど)されて保存されますが、
標準の設定ではリサイズされる際にオリジナル画像の90%の容量に圧縮してしまうそうです。
ちなみに画質が変化するのはWordPressがリサイズする画像のみに反映されるようで
フルサイズ(元データ)の画質は劣化しないようです。
解決方法
functions.phpに下記のコードを追加します。
1 2 3 4 5 |
//PHP5.3以上はこのコード add_filter( 'jpeg_quality', function( $arg ){ return 100; } ); //PHP5.2以下はこのコード add_filter('jpeg_quality', create_function('$arg','return 100;')); |
※【注意】既にアップロードされている画像の劣化は解消されません。
「return 100;」の部分が圧縮率になります。
100で無圧縮・無劣化になり、
数値を下げると圧縮率が高くなり画質が劣化します。
わざわざ数値を下げて画質を落とす必要はないと思いますが(笑)
実際に検証してみる
アップした画像(元サイズ1200X800px)の大サイズ(幅の上限600指定)で見ていきます。
無圧縮・無劣化の100%(return 100)
WordPress標準の90%(return 90)
50%(return 50)
10%(return 10)
90%と100%で容量の差も数百KB程度だったりしますし
綺麗な画質に越したことはないと思いますので
テーマ構築時には記述しておいても良いかと思います。
こちらの処理と合わせると良いかもですね。
WordPressで画像アップロードの自動生成を停止・リサイズして容量を減らす
▼参考にさせていただきました。ありがとうございました。
この記事の投稿者
taka
Webサイト作ってます。
最近のモットー「決して無理をしないスタイル」
twitter: @taka_sbs