2011-08-03 18 views
3

これらのレベルはC#でJPEG圧縮で利用できるため、異なる圧縮レベルでビットマップをPNGに圧縮したいとします。私は1秒で処理するために異なるサイズの20から30の画像を持っています。異なる圧縮レベルのPNGでこの圧縮を実現するライブラリはありますか?.netでのPNG圧縮

+0

[this](http://msdn.microsoft.com/en-us/library/aa970062.aspx)は便利ですか? PNGを作成する方法をすでに知っていて、それを最適化したいのであれば、[this tool](http://advsys.net/ken/util/pngout.htm)を使って 'Process.Start()'で実行することができます。方法。 –

答えて

0

この回答によると、C#: Seeking PNG Compression algorithm/library C#のPNGは可逆圧縮ライブラリです。複数の品質レベルをサポートしていません。

PNGのwikiページ(http://en.wikipedia.org/wiki/Portable_Network_Graphics)は圧縮形式はロスレスであることを確認しているようだ(例えば、単一の圧縮レベルを持っている)

いくつかのグーグルは、PNG

+1

たぶん彼はビット深度を変更する方法を尋ねていますか? – deerchao

+1

"圧縮形式がロッシーであることを確認しているようです"私が間違っていてもPNGのものがロスレスで無損失であれば正解してください... – Peter

+0

Thanks Petojが私の誤植を更新しました – davidxmiller

6

の非可逆バージョンロスレスの研究があることを示唆しています圧縮方法は単一の品質レベルである必要はない。つまり、一部の可逆圧縮方式には、速度/圧縮率のトレードオフを選択するためのパラメータがあります。それは作者の責任です。

PNG圧縮に関しては、実際にはフィルタと圧縮アルゴリズムの束です。 (例えば、2つの異なる圧縮器が全く異なる出力を生成することができるが、いずれも有効な圧縮解除器によって圧縮解除することができる)場合、いくつかのプログラムが異なるPNGを出力するのは不思議ではない。フィルタを考慮していません。いくつかのフィルタがあり、「最良の」フィルタがない、すなわち画像によって品質が異なる。

冗長性のため、通常のPNGを入力として使用してPNGオプティマイザを作成する人がいました。それらの中には、完全に透明な領域にいくつかの予測可能な色を塗りつぶして圧縮を増やすなどのいくつかのトリックを適用します。しかし、一般的には、彼らはブルートフォース方式でパラメータを微調整します。あなたはデスクトップ環境であなたの実行可能ファイルを実行しようとしている場合は、オプティマイザとしてthese toolsのいずれかを使用することができ、

  1. 今、あなたの質問のための最も簡単な答えは次の2つのオプションを持っている可能性があります。しかし、共有ホスティングでは、可能な特権のためにそれらを使用することはできません。

  2. いくつかの力任せのパラメータ調整を考慮して、独自のPNGライターを.NETに書くことができます。
+0

*可逆圧縮方式は、単一の品質レベルである必要はありません。* - 品質によっては、画質が話題になっている場合は間違っています。定義上、正確に同じ品質を提供する必要があります。 – RedFilter

+1

私は、圧縮レベル(すなわち、圧縮サイズの点での出力品質)について話していることは明らかです。さらに、私は明示的に述べました: "私は、いくつかの可逆圧縮方式には速度と圧縮率のトレードオフを選択するためのパラメータがいくつかあることを意味します。" –

+0

*品質*は、通常、ファイルサイズに関して使用される単語ではありません。だから、それは明らかではありません。 – RedFilter

関連する問題