AsidoのGIFのリサイズの画質を上げる(coreserver)

PHPで簡単に画像を操作・編集できるライブラリ Asido(0.0.0.1a)Coreserver使ってみたのですが、なぜかGIFのリサイズした画質が悪かった。
(たぶん、PHPではImageMagickは使えずGDしか使えないのが原因?)

ソースを見て一部変更するだけで画質が上がったのでメモ。

画質比較

▼元画像(w302px × h228px)

nstm003_t

▼AsidoでGIFリサイズの書き出し比較

Asidoデフォルト
( imageCopyResized() )
Asidoカスタマイズ
( imageCopyResampled() )
Fireworksでリサイズ
Asidoデフォルト Asidoカスタマイズ FWでリサイズ

ソース変更箇所

class.driver.gd.php の184行目当たり

[php num=’184′]
$r = imageCopyResized(
[/php]

[php num=’184′]
$r = imageCopyResampled(
[/php]
関数 imageCopyResized() → imageCopyResampled() に書き換えるだけ。
これだけで画質が随分上がりました。
Coreserverでも使えたらので、xreaでもたぶん大丈夫だと思います。

注意事項

  • サーバーに入ってるGDが2.x以上
  • レンタルサーバーによってはimageCopyResampledが使えないケースがあるので、function_exists( ‘imageCopyResampled’)で分岐処理をした方がいいかもしれません。

▼分岐処理する場合のメモ(試してないので動かないかも)
[php num=184]
$r = imageCopyResized(
$_, $tmp->target,
0,0,
0,0,
$width, $height,
$tmp->image_width, $tmp->image_height
);
[/php]

[php num=184]
if( function_exists( ‘imageCopyResampled’) ) {
$r = imageCopyResampled(
$_, $tmp->target,
0,0,
0,0,
$width, $height,
$tmp->image_width, $tmp->image_height
);
} else {
$r = imageCopyResized (
$_, $tmp->target,
0,0,
0,0,
$width, $height,
$tmp->image_width, $tmp->image_height
);
}
[/php]

  • URLをコピーしました!

この記事を書いた人

どうでもいいことばかりです

コメント

コメントする