前の記事 «:画像にページめくり効果をつけられるJSライブラリ「curl.js」
次の記事 »:PHPウォッチのPHPカンファレンス2007特集記事

PHPでPNG画像の透過部分を保持したままリサイズするサンプル

2007年09月21日

スポンサード リンク

Smart Image Resizing while Preserving Transparency With PHP and GD Library | Medium eXposure

Also, you want it to preserve transparency damn it! Surprisingly, I was unable to find a good function that does all that, so I decided to attempt writing it. This should do it.

PHPでPNG画像の透過部分を保持したままリサイズするサンプル。
PHP+GDで透過PNG画像をリサイズしようとすると、透過部分が黒くなってしまったり、ちゃんとやらないとうまくリサイズできなかったりします。

ということで、便利な関数を公開されているページを紹介。

関数自体は次のような引数を持ちます。

function smart_resize_image( $file, $width = 0, $height = 0, $proportional = false, $use_linux_command = false )

$file にリサイズしたいファイルを渡します。($file に直接リサイズ画像が上書きされてしまうので注意が必要)
$width, $height  でサイズ指定、$proportional で比率の維持をするかどうか、$use_linux_command は特に使う必要はないでしょう。

この関数を使えば、透過PNG が問題なくリサイズされます。
PNG だけでなく、GIF, JPEGのリサイズにも対応しています。

但し、そのままでは、$file に上書きされてしまったり、ちょっと使い勝手が悪い感じなので、この関数を参考に新しく関数を書いたほうがよいかもしれません。

スポンサード リンク

投稿者 KJ : 2007年09月21日 12:03 | ブックマークに追加する Subscribe with livedoor Reader
間違いの指摘をしていただける方はメールでお願いします


本を執筆しました。