WordPressの携帯対応プラグイン Ktai Styleを使わせてもらっとる。
とても、便利なプラグイン。
携帯で見やすいように、大きなサイズの画像は、幅96pxの縮小画像に変換してくれる。
ただ、これで困ったことがあって、透過GIFが縮小されたときに、透過色の部分が真っ黒になってしまう。
ものすごい困るってことでもないけど、ちょっと気になる。
で、ちょろっと調べたところ、縮小処理はこの関数でやっているらしい。
\ktai-style\inc\shrinkage.php create_thumbnail( )
どうも、GIF、PNG画像を縮小するときに透過色を指定していないかららしい。
で、imagecopyresampled( )を使って元画像をコピーする処理の前に、こんな処理を入れてみた。
//透過色処理 switch ($type) { case IMAGETYPE_GIF: case IMAGETYPE_PNG: // 透過色インデックスの取得 $trnprt_indx = imagecolortransparent($image); if ($trnprt_indx == -1) break; // 透過色RGB値の取得 // 修正後画像での透過色(にする色)のインデックスを取得 // 透過色インデックスで塗りつぶす // 透過色インデックスを透過色に指定 break; |
これをすると、微妙に透過できるけど、キレイに透過できん。
理由はよーわからんけ、調べてみるかな。
とりあえず、今は決め打ちで黒を透過色指定するようにしとる。
//透過色処理 switch ($type) { case IMAGETYPE_GIF: case IMAGETYPE_PNG: //黒を透過色に指定 $trnprt_indx = imagecolorallocate($thumbnail, 0, 0, 0); // 透過色インデックスを透過色に指定 break; |
Ktai styleが生成した縮小画像は、/wp-content/uploads の中に、「元画像ファイル名.ktai.gif」というようなファイル名で保存されとるけ、携帯用に縮小画像を作成して、上書きアップロードした方がキレイな画像が表示できるんかもしれん。
(いちいち縮小画像を手動でつくるのは面倒だけど)