なぜデフォルトでPNGをJPGに変換するのですか?

これは管理者が切り替え可能なサイト設定として公開されていることは、完全に理解しています(そして感謝もしています!)が、この「機能」自体が非常に誤っていると感じています。

PNG には 2 つの極めて重要な特徴があります。それは、テキストの可逆的(かつ可読な!)表現と、透過性のサポートです。これら両方が PNG を使用する重要な理由です。Discourse サイトのユーザーとして、私は(透明性のあるテキストの)画像をボードにアップロードしましたが、それが自動的に JPG に変換されてしまい、非常に失望しました。まあ、それはどうでもよいことです。他の場所でホストすればいいだけですから。ところが、@system が現れて、私の画像をダウンロードして変換し、私の投稿を勝手に編集して、透明性を壊し、見た目をさらに悪くしてしまったのです。幸いにも私も管理者だったので、ウェブを検索して、以下のスレッドの 1 つを見つけ、png to jpg quality設定を変更できることに気づくことができました。

少なくとも、GIF に透明性が含まれている場合は、この機能を無効にするのが賢明だと思われます。

皆様は、実際に自分のボードでこの機能を気に入っておられますか?これまでに 2 回提起されましたが、どちらも PNG が変換されて困惑・不満を抱く方がいました。このデフォルト設定を見直す価値は十分にあると思われます。

「いいね!」 3

つまり、JPG として保存した方が画像サイズが小さかったということです。このしきい値を調整するサイト設定があると思います。サイト設定を確認して、検索してみてください。

「いいね!」 4

「設定/ファイル」で、下から3番目の項目までスクロールしてください。「画像のメタデータを削除」のチェックを外します。そのすぐ上には「pngからjpgへの変換品質」があります。必要に応じて設定を調整してください。

「いいね!」 5

はい、これが設定可能であることは完全に理解しています(すでに自分のサイトでは無効化しました)し、その意図も理解しています。それでも、この機能自体が誤っていると考えており、デフォルトを変更するのが妥当だと感じています。

例を挙げましょう。スクリーンショットのデフォルト形式は PNG で、それは正しい選択です。このウィンドウのスクリーンショットを撮ってアップロードすると、自動的に JPG に変換されてしまいます。

元のファイルは 361KB でしたが、圧縮された JPG は 218KB です。確かにサイズは小さくなりましたが、透過性が失われ、ダークテーマを使用しているユーザーには見苦しく、テキスト周辺にアーティファクトが発生しています。

一方、ローカルで optipng を使用して PNG を最適化すると、透過性と鮮明なテキストを持ち、サイズはわずか 219KB のファイルが得られます。これをアップロードすると、PNG のまま保持されます。


PNG から JPG への変換は、非常に損失の大きい処理です。アップロード時に行うのはまだしも、投稿後に外部画像を自動的に変換するために投稿を編集するのは全く別の問題です。帯域幅やストレージを節約する方法は他にもあります。PNG 最適化ツールを使うことや、サイズ変更(クリックで全サイズ表示機能があるため、投稿には小さい画像を埋め込み、クリック時にのみ全サイズを表示するのは合理的です)などが考えられます。

「いいね!」 4

これはバランスを取る作業です。

できるだけ安くフォーラムをホストしようとして、画像がスペースを占有しすぎだと不満を述べる人々のトピックが多数あります。このような管理者は画像の品質には関心がなく、あらゆる手を尽くしてコストを削減することだけを考えています。

一方、コミュニティに深くコミットしている人々もおり、オブジェクトストレージを活用して、合理的なコストで高品質を提供することができます。

ここで議論されているのはデフォルト設定についてでしょうか?それとも、JPG サイズと PNG のポスト最適化を比較測定してみるのはどうでしょうか?記憶が正しければ、PNG の最適化はかなり高コストになる可能性があります…

「いいね!」 9

お友よ、この議論であなたが勝つことはありません。今ここで止めるのが賢明です。サイト設定は、好みに合わせて調整できるように存在するのです。

「いいね!」 2

この機能の削除はありえません。しかし、この投稿は興味深いですね:

Discourse がまず optipng を使用し、その後生成された「最適化された」サイズに基づいて JPG に変換するかどうかを判断するには、何が必要でしょうか?それとも、それは遅すぎるでしょうか?

「いいね!」 4

6000x6000 の PNG 画像に対して optipng を実行して、どのような結果になるか試してみてください。私たちはすでにこの処理の一種を行っていますが、アルゴリズム的に急激に性能が劣化し、非常に深刻な問題が発生します。

「いいね!」 5

この機能をなくすつもりは全くありません——「欠陥機能」と呼んで大げさに表現してしまったら申し訳ありません。問題なのはデフォルト設定です。私はその動作に驚き、役立たないと感じました(特に、外部リンクで回避策を講じた後、自動的に元の状態に戻されてしまったため)。そこで、デフォルトを変更すれば他の人にも役立つだろうと思い、ここに投稿しました。しかし、すべてのデフォルト選択と同様に、トレードオフに関する主観的な好みがすぐに影響を及ぼします。ラファエルさん、論理的で説得力のある投稿をありがとうございます。この議論を大切に思っています。最初に述べた通り、私は真剣に、皆さんがこの機能をどう思っているか尋ねたまでです。

「いいね!」 3

.jpg から .webp に変更すると面白いかもしれませんね。lossless ですが、.png よりもファイルサイズが小さくなります。

私の理解では、それはメディア(特に透過性が求められる画像)に使用するための新しいウェブ標準です。

「いいね!」 3

古い/非互換のブラウザ(IE や Safari)はサポートしていないため、できません。

「いいね!」 10

今、Safari が本当に嫌ですが、素早い返信ありがとうございます。サポートが早く実装されることを願っています。

特に、時間が経つにつれて IE11 の重要性は低下していくでしょうから。

「いいね!」 2

現在のデフォルトが最適化された JPEG であるという決定は、誤った判断ではありません!私はグラフィックについては PNG が大好き :smile_cat: で、JPG :grumpycat: は大嫌いですが、この問題については現在の体制(権威という意味でも、システムという意味でも)を完全に支持します。

Discourse チームは、Discourse がデフォルト設定で成功するために何が必要かについて、現実的な評価を下しています。

  • 平均的なサイト所有者兼管理者は、画像の品質オプションを探しているわけではありません。彼らの目的は画像の品質ではなく、デフォルトの画像ファイル形式を問題視することもないでしょう。したがって、最適化された JPG をデフォルトにすることで、最も多くの人にとって最も大きな利益が得られ、最も少ない不満で済みます。

  • 私のような PNG 愛好家は、常に画像の品質や情報を保持するためのサイトオプションを探しています。同様に、写真や画像中心のサイトでは、画像の品質が重要な判断基準となります。

現在のアプローチの実践的な結果として、損失ありの WebP へのシームレスな移行が期待されます。その後、おそらくここでさらにトピックが上がる際に、損失ありと損失なしの WebP のどちらがよいかという問題が生じるでしょう :laughing:

もし過去に大量の PNG ファイルを最適化したことがあるなら、その結果があまり魅力的でないことはお分かりでしょう。PNG オプティマイザーは、JPG オプティマイザーに比べて 非常に時間 を要します。また、最も効果的に最適化できる PNG 画像を作成するには、より高度な技術が必要です。例えば、https://medium.com/@duhroach/reducing-png-file-size-8473480d0476How To Optimize PNG — Smashing Magazine が参考になります。

「いいね!」 5

一つだけ、将来的に実装予定の機能として、ユーザーが画像をアップロードする前に最適化できる機能があります。

圧縮処理を別のスレッド(Web Workers を使用)に振り分け、サーバー側で使用しているのと同じアルゴリズム(WASM を使用)を適用することで、ユーザーエクスペリエンスは悪くありません。

「いいね!」 15

PNG に透過性がある場合、この動作を無効にするのはどうでしょうか?変換プロセスで最も目に見える損失はそれです。

「いいね!」 4

これは検出可能のようです

「いいね!」 5

スクリーンショットプログラムにドロップシャドウの挿入を停止させるように指示すると、Discourse はそれを実際にはテキストと単色であると判断するため、変換を停止する可能性があります。

「いいね!」 5

今日は、アップロードされた PNG ファイルをすべて PNG 形式のまま保持したいというサイトについて調べていました。png to jpg quality を 100 に設定しても、recompress original jpg quality も 100 に設定しない限り、Discourse は大きな PNG ファイルを JPG に変換し続けてしまうことが分かりました。これは想定された動作でしょうか?もしそうであれば、recompress original jpg quality 設定の説明を更新し、PNG アップロードへの影響についても記載する必要があります。

「いいね!」 8

ええと、どうでしょうか?@sam さん、その判断は来週にしましょうか?少なくともコピーの更新は行うべきですね。

「いいね!」 3

私は確信がありません……zogstrip さんに譲ります。

「いいね!」 4