WordPressでは、画像をアップロードするとサムネイルが自動的に作成されます。このとき、256色以下のPNG(インデックスカラーPNG)をアップすると、サムネイルのファイルサイズがオリジナルよりも増えてしまうのです。これは、画像を綺麗に縮小してサムネイルを作成するために、一旦、内部でフルカラーに変換してしまうのが原因です。問題なのは、この変換したフルカラー画像を、そのままサムネイルとして保存してしまうことです。
転送量を気にしてインデックスカラーのPNGをアップしたと言うのに、オリジナルよりも肥大化したフルカラーのサムネイルが生成されてしまっては、減色した意味がないですよね?これなら、元の画像をそのまま貼り付けて、imgタグのwidthとheightを小さくした方が遥かに利口です。ただでさえ、複数のサムネイルが作成されてサーバ容量が圧迫されるというのに、このままでは使わないゴミが増えていくばかりです。
そこで、インデックスカラーPNGがアップされたときは、同じ色数に減色したサムネイルを作成する改善パッチを書いてみました。