Windows Live WriterでWordPressに投稿するとサイズの大きな画像がップロードされる問題を再圧縮で解決するプラグイン『jpeg-quality75』
上の画像は約76.3KBあります。
このブログに投稿されている画像はここ数年は基本的にWindows Live Writerでアップロードしたものです。Windows Live Writer(以降WLW)はとても優れた便利なブログ投稿支援ソフトですが、欠点の一つとしては画像の圧縮率を指定できないことです。
最近は将来的なことも見越して割と大きめのサイズの約幅600ピクセルで画像と投稿しています。それが、サーバーの大きな負荷になって居たりするのですが、その大きな問題はWLWに有ります。
私が使っているWLWはXP用の古いバージョンで、Windows Live Writer Build 14.0.8116.416 jaです。未だにXPを使っている為ですが、最新のバージョンでも似たようなものの様です。一応ノートはWindows 7なので最新のWLWがインストールしてありますが、普段はデスクトップを使うので未だにそんな状況です。
で、解決するためのプラグインがあるんじゃないかと思って色々探してみるんですけど、日本のサイトではまあ案の定見つからないわけです。日本語でWordPress(以降WP)の情報を検索するとヒットするのは、全てとはいいませんがほとんど「こんなプラグインがあるよー」的なサイトばかりヒットして、簡単な使い方だけのせて肝心のオプションの設定方法も掲載していない様なサイトが多いです。
「Imsanity」「EWWW Image Optimizer」「WP Resized Image Quality」とか試してみました。
ImsanityはWLWで投稿した画像の再圧縮はしてくれませんでした。
EWWW は、そもそも、最適化するプラグインでJpegを圧縮する機能はないです。
WP Resized Image QualityもWLWでアップロードした画像を再圧縮はしてくれません。
Jpeg Qualityでプラグイン検索すると色々あるのでもしかしたらしてくれるプラグインがあるかもしれませんが、逆に数が多いし英語も読めないのでプラグイン検索で探すのは諦めました。
で、普通にググってみることにしたわけで、「Live Writer Jpeg Quality」的なkeywordで検索するわけです。
で、検索結果の2番めに表示されている下のWordPressのプラグインがよさ気なわけです。まさに私が求めていたプラグインです。自分のサイトでのみ公開されているのでプラグインのインストールからの検索では見つかりません。
» Improving image compression for Windows Live Writer
このプラグインアップロードした画像を圧縮率75で再圧縮して置き換えてくれます。グレートです。
で、喜び勇んでインストールしたのですが、動きませんでした。インストールして一応有効にはできるのですが、いざ画像をアップロードしてみると画像が作られません。2008年に作ってそのまま放置みたいなのでWordPressやPHPのバージョンアップで動かなくなっているものと思われました。が、私はどちらにも疎いので利用を一旦諦めてまた、プラグインや情報の検索の度に出かけたのですが、やっぱりいいものが見つけられなくてなんとかこのプラグインを動くように出来ないかとプログラムの修正にトライしてみることに…。
で、動かすことが出来ました。これって、WPとPHPが普通にわかっていれば直ぐ直せそうな問題でしたが、私は解決に数時間を要しましたwww。
そういうわけで長々と前置きをかきましたが、以下、WP用プラグイン「jpeg-quality75」の導入方法です。
WP用プラグイン「jpeg-quality75」の導入方法
前提条件(2014/01/23現在)
PHP 5.4.23
WordPress 3.8
jpeg-quality75 1.0
1.下記サイトから「jpeg-quality75.zip」をダウンロード。
» Improving image compression for Windows Live Writer
2.ダウンロードした「jpeg-quality75.zip」を解凍。
3.解凍すると「jpeg-quality75.php」というファイルができるので、下記の手順でコードを修正。
改行コードにもよりますが31行目付近を以下の様に書き換えます。
//function my_recompress_image(&$attribs) {
function my_recompress_image($attribs) {
50行目付近を書き換えます。
// $abs_file = $file_path . "/" . $this_file;
$abs_file = (strstr($this_file,"/")) ? $this_file : $file_path . "/" . $this_file;
それから38行目付近ですが、下記の値を書き換えることで圧縮率をお好みで変更することが出来ます。
$quality = 75;
コードの修正が完了したら保存します。
4.修正が完了した「jpeg-quality75.php」をWPのプラグインディレクトリにFTPなどでアップロードします。
通常場所は以下のプラグインディレクトリ直下か、jpeg-quality75というディレクトリを掘ってそこにアップロードします。
wp-content/plugins/jpeg-quality75
5.WPの管理画面のプラグインからjpeg-quality75を有効化します。
6.実際に画像をアップロードしてみます。
メディアの新規追加や、実際に記事を投稿して見ます。
上手再圧縮されていればOKです。
jpeg-quality75の効果の程
さて、実際のjpeg-quality75の効果の程を紹介したいと思います。
この記事自体、「jpeg-quality75」導入後、初めて投稿する記事なのでどうなるか楽しみです。
最初の方でも紹介したこの画像、620×470で76.3KBもあります。私が使っているバージョンのWLWではJpeg画像を圧縮率93で無駄に高品質で圧縮しています。
で、こちらが「jpeg-quality75」で再圧縮されたものです。少し色が薄くなったような気がしますがサイズは約34KBにまで減少しています。サイズは半分以下になりその効果は絶大です。
多少画像が劣化しても問題ない写真がメインではないサイトで、WLWを利用してWPに投稿している人には必須のプラグインではないかと思います。
jpegの圧縮率を確認するのには下の様にIrfan Viewを使うと便利です。
メニューのImage>Informationで画像の情報を見ることが出来ます。
WLWで出力したものはQualityが93でサイズが76.31KBなことが分かります。
「jpeg-quality75」で再圧縮したものは圧縮率75でサイズが33.72KBということが分かります。
同様の問題でお困りの方はぜひ「jpeg-quality75」を利用してみてください。