Optimized PNGEncoder with filters
PNG フォーマットには圧縮効率を上げるフィルタという仕組みがあるので、そいつを Optimized PNGEncoder に実装してみた。
PNG フォーマットで定義されてるフィルタの種類は5種類。
- None – 該当バイトをそのまま使用 (as3corelib の PNGEncoder はこれ一択)
- Sub – 該当バイトと左のピクセルのバイトとの差分を使用
- Up – 該当バイトと上のピクセルのバイトとの差分を使用
- Average – 該当バイトと左/上のピクセルのバイトの平均値との差分を使用
- Paeth – 該当バイトと左/上/左上のピクセルのバイトのうちの最近傍値との差分を使用
ていう感じ。どのフィルタを使うのが圧縮率が高いかは対象の画像に依存する。
ファイルサイズは 1 / 5 くらいになるけど、処理時間は倍以上かかっちゃう。このまま None 以外のフィルタ使うとサーバ資源は節約できるけどユーザのストレスは倍増間違いなし・・・ あ、Alchemy の出番ですね!!まだ Cygwin のセットアップも終わってないけど!!
// 関係ないけど Wonderfl でコードが 1000 行越えるとソースコードのプレビューのインデントとかカラーリングとかが壊れちゃいました。
About this entry
You’re currently reading “Optimized PNGEncoder with filters,” an entry on jp.ferv.blog
- Published:
- Fri, Jan 8th, 2010 at 4:18 AM
- Author:
- dsk
- Category:
- Web
- Tags:
- ActionScript 3.0, FileFormat, PNGEncoder
1 Comment
Jump to comment form | comments rss | trackback uri