VRCImageHelper icon indicating copy to clipboard operation
VRCImageHelper copied to clipboard

JPEGに変換すると極端に色数が少ない画像になってしまう

Open AzukiShiratama opened this issue 1 year ago • 3 comments

0.9.5を利用させていただいています。 タイトル通り、JPEGに変換すると16色(?)ぐらいに色数が落ちた画像になってしまいます。 環境の問題かもしれませんが一応ご報告いたします。

AzukiShiratama avatar Dec 26 '24 02:12 AzukiShiratama

手元だとこのぐらいの品質なので、そこまでは落ちていないかなあといった感触です

  • JPEG (品質20) VRChat_2024-12-29_18-57-42 146_3840x2160
  • PNG VRChat_2024-12-29_18-56-16 903_3840x2160

品質設定を上げてみると (0が最高) 少し改善したりするかもしれません image

いまは Image.Save https://learn.microsoft.com/ja-jp/dotnet/api/system.drawing.image.save?view=windowsdesktop-9.0#system-drawing-image-save(system-io-stream-system-drawing-imaging-imageformat) https://github.com/m-hayabusa/VRCImageHelper/blob/91239ecc2d7b3f8fccf5a704e950da0f92d20303/VRCImageHelper/Core/ImageProcess.cs#L152-L160 で圧縮してて、JPEGもffmpegでやるようにしてもよいかもなあといった感じがしています

m-hayabusa avatar Dec 29 '24 10:12 m-hayabusa

品質のところは圧縮率で0が最大なのですね! 一般的なソフト類と同じような感覚で100に設定してしまっていました。 こちらの確認ミスで大変ご迷惑をおかけしてしまい申し訳ありません。

AzukiShiratama avatar Dec 30 '24 02:12 AzukiShiratama

この値は元々AVIF・WEBP側の「ffmpegのパラメータ -crf X あるいは -q X-cq X などに渡す値」で、これは「(ほとんどの場合) 0が最高品質、+方向に増やすと圧縮率が上がっていき、上限はエンコーダによって違う」という指定になります。

これにJPEGのときの挙動も合わせた結果、一般的なものと逆になってわかりづらくなっていて…。 どこかでわかりやすく修正したくはあります (JPEGだけ分けてもよいかもしれないですね)

m-hayabusa avatar Jan 01 '25 11:01 m-hayabusa