8

PNG の利点の 1 つは、完全なアルファ透明度です。これにより、Web デザインで滑らかなエッジと影を作成できます。主な欠点は、可逆圧縮しかサポートしないことです。これは、複雑な画像の場合、ファイル サイズが非常に大きくなることを意味します。

一方、JPEG は複雑な画像に対して優れた圧縮性を提供しますが、透過性はありません。

最後に、非常に圧縮された画像を含む Flash 要素 ( example here ) を見てきましたが、エッジとシャドウも滑らかになっています。私は Flash についてあまり知りませんし、これがどのように達成されるのかわかりません。これは基本的に私がやりたい効果です - 透明または影付きのエッジを持つ大きくて複雑な画像。

私の質問は次のとおりです。

Flash では、透過性を伴う非可逆圧縮はどのように機能しますか?

ここで使用されているフラッシュ固有のレイヤー化のトリックはありますか? PNGの場合と同じように、画像に生成またはラスタライズされた影ですか。

PNG 画像を非可逆圧縮バージョンに置き換えることができる SWF または SWF 生成スクリプトはありますか?

特定のデザイン要素の読み込み速度を改善するための漸進的な拡張を考えています。これが存在しない場合、それを書くことは可能でしょうか?

透明性を伴う非可逆圧縮を許可する形式はありますか

これに関する具体的な情報を見つけるのは困難でした。DjVuが候補になるかも?ブラウザー メーカーに別の形式をサポートするように促す必要がありますか?

この問題に対する他の解決策はありますか?

すべてを Flash で行うか、巨大なファイル サイズを受け入れるかが、現在の選択肢です。その他の可能性:

  • SVG とキャンバスはエッジを適用できる場合がありますが、IE ではサポートされていません。
  • スキャン ラインに沿って PNG を切り取り、それらを JPEG で圧縮して、エッジを PNG のままにすることができます。これはソースでは厄介ですが、すべてのブラウザーで機能します。楽しいプロジェクトのようですね。朝までに書きます。:)
  • PNG アルゴリズムのスキャン ラインに沿って色の複雑さを減らし、PNG 形式内での圧縮を改善できる非可逆画像フィルタを作成できます。これが存在しなければならないことはわかっていましたが、見つけることができませんでした。これを知っている人はいますか?

ご協力いただきありがとうございます!

4

9 に答える 9

6

PNGの利点の1つは、完全なアルファ透明度です。これにより、Webデザインで滑らかなエッジとシャドウを使用できます。主な欠点は、ロスレス圧縮のみをサポートすることです。これは、複雑な画像の場合、ファイルサイズが非常に大きくなることを意味します。

あなたは間違っている。非可逆圧縮(8ビットインデックスカラー)とアルファ透明度を備えたPNGを使用できます。

于 2009-03-31T16:15:13.460 に答える
5

完全なアルファでパレット PNG を生成する pngquant を開発しています。

パレットへの変換は非可逆圧縮にかなり近く、同様に良好な結果が得られます。多くの場合、品質をほとんど損なうことなく画像サイズを 60 ~ 70% 縮小できます。

また、PNG の非可逆フィルタ (適切に選択されたレベルでのポスタリゼーション) を含むMac GUIも作成しました。この手法では画像が約 30% 縮小されますが、24 ビット画像で機能します。

于 2012-03-19T16:50:13.980 に答える
2

Are there flash specific layering tricks being used here?

Could be. It's possible to manipulate bitmaps in ActionScript, so you could take the Alpha layer from a simple transparent PNG with no colour data, and combine it with the pixel data from a JPEG.

Are there any formats that allow lossy compression with transparency

Yes, JPEG 2000 and Microsoft's HD Photo. Don't hold your breath for browser support though!

于 2009-03-31T16:43:19.117 に答える
1

mingを使用して、バックエンドでその場でフラッシュを作成できます。これは、マスキングjpgを示すPHPのサンプルです。

于 2009-03-31T16:41:09.950 に答える
1

興味深い答えがいくつかあります。同じ問題に遭遇したので、追加できるかもしれません。

Flash では、透過性を伴う非可逆圧縮はどのように機能しますか?

それはうまく機能します、それは透明なjpgのようなものです:)

PNG 画像を非可逆圧縮バージョンに置き換えることができる SWF または SWF 生成スクリプトはありますか?

はい、あります:

Durej の Images 2 SWFmr.doob の png2swfをチェックしてください

それが役に立てば幸い。幸運を!

于 2009-04-12T21:01:58.833 に答える
0

また、こんな研究もあります

http://membled.com/work/apps/lossy_png/

http://www.theopavlidis.com/software/pack4png/expages/exindex.htm

于 2009-07-10T00:37:35.963 に答える
0

JPEG とマスクを使用できます。マスクは、ビットマップ (PNG または GIF のように可逆圧縮する必要があります) またはベクトルのいずれかです。

ほとんどの Web での使用では、これらを SVG としてパッケージ化します - http://peterhrynkow.com/how-to-compress-a-png-like-a-jpeg/

一部のアプリケーションでは、それらを個別に使用する場合があります。形状が同じでもテクスチャが異なる場合に、マスクを再利用できます。また、選択したワークフローまたはフレームワークに適している場合もあります。

于 2015-06-18T14:08:53.380 に答える