はじめに
Twitter で以下のつぶやきを見つけました。
TinyPNG は、劣化がほとんど無く大幅な圧縮率を誇るサービスです。その画像を WordPress のメディアライブラリに新規追加すると、メディアライブラリに作成されるサムネイルの方が大きなサイズになってしまいます!TinyPNG にアカウントを作成し、有償でそのサービスを使いサムネイルまで生成するようなプラグインも出ていますが、面倒です。そこで、少し画像は劣化してもかまわないから、サイズを圧縮したいという方向けにプラグインを作成してみました。
また、JPEG 用に、画質を変更するフィルター jpeg_quality があるのですが、PNG は無いのでプラグインでフィルターも提供するようにしました。
概要
- メディアライブラリに PNG ファイルを追加する際に PNG ファイルを圧縮します。
- 品質を指定できます。
- 圧縮率を指定できます。
使用方法
- PHP で PNG を圧縮する関数は、デフォルトではたいした圧縮ができないため、一度、JPEG に変換しそこで画質を調整し、PNG に戻して圧縮するという2段階の方式をとっています。そのために、JPEG の中間ファイルの画質調整と、PNG の圧縮率調整が必要になります。また、それぞれのフィルターを提供します。
- JPEG 中間ファイルフィルター(0~100を指定)
- add_filter( ‘tmp_jpg_quality’, function(){ return 80; }, 10, 1 );
- PNG 圧縮率フィルター(0~9を指定)
- add_filter( ‘png_quality’, function(){ return 9; }, 10, 1 );
- JPEG 中間ファイルフィルター(0~100を指定)
- アップロードした元のファイルの圧縮の可否を指定できます。
コメントを残す