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

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

2007年09月21日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

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 に上書きされてしまったり、ちょっと使い勝手が悪い感じなので、この関数を参考に新しく関数を書いたほうがよいかもしれません。

関連の記事検索:PHP, png, 画像, gd
スポンサード リンク

By.KJ : 2007年09月21日 12:03 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)