3

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

4

2 に答える 2

6

無損失圧縮方式は、単一の品質レベルである必要はありません。つまり、一部の可逆圧縮方法には、速度と圧縮率のトレードオフを選択するためのパラメーターがいくつかあります。作者次第です。

PNG 圧縮に関しては、実際には一連のフィルターと圧縮アルゴリズムです。deflate には冗長なエンコード ステージがあることを考えると (たとえば、2 つの異なる圧縮プログラムがまったく異なる出力を生成する可能性がありますが、それでも有効な圧縮解除プログラムで圧縮解除できます)、いくつかのプログラムが異なる PNG を出力するのも不思議ではありません。私はまだフィルターを考慮していないことに注意してください。いくつかのフィルターがあり、「最高の」フィルターはありません。つまり、その品質は画像によって異なります。

冗長な機能のため、一部の人々は、通常の PNG を入力として受け取り、知覚的な損失なしに小さな PNG を生成する PNG オプティマイザーを作成しました。それらのいくつかは、完全に透明な領域を予測可能な色で塗りつぶして圧縮を高めるなどのトリックを適用します. しかし、一般的には力ずくでパラメーターを微調整します。

さて、あなたの質問に対する最も簡単な答えは、2 つの選択肢があるということです。

  1. デスクトップ環境で実行可能ファイルを実行する場合は、これらのツールのいずれかをオプティマイザーとして使用できます。ただし、共有ホスティングでは、特権の可能性があるため、それらを使用できません。
  2. ブルート フォース パラメーター チューニングを考慮した独自の PNG ライターを .NET で作成できます。
于 2011-12-25T23:31:09.910 に答える
0

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

PNG の wiki ページ ( http://en.wikipedia.org/wiki/Portable_Network_Graphics ) は、圧縮形式がロスレスであることを確認しているようです (たとえば、単一の圧縮レベルしかありません)。

一部のグーグルは、PNGの損失バージョンに関する研究があることを示唆しています

于 2011-09-09T15:45:31.450 に答える