特定の出力ファイルサイズで画像をPNGまたはJPGファイルとして保存するにはどうすればよいですか? (C#での設定)
質問
既存の画像を特定のファイルサイズ(100 KBなど)でPNGまたはJPGとして保存したい。
解決
PNGはロスレス圧縮を使用しているため、特定のレベル以下で圧縮することはできません。
.NETでは、JPGを圧縮して保存し、完了時にファイルのサイズを推測できます。
http:// msdn.microsoft.com/en-us/library/system.drawing.image.save(VS.80).aspx -「JPEG画像を圧縮値で保存」をご覧ください。セクション。
また、画像のサイズを変更して小さくすることもできます。
他のヒント
JPG 2000を使用している場合のみ、ファイルサイズを特定の値に設定できます。 JPGを使用すると、さまざまな品質値を試す必要があります。PNGを使用すると、特定の画像に対して1つのサイズと圧縮レベルが得られます。画像のサイズを変更すると、サイズが小さくなります。
画像のサイズを変更して、圧縮されていない画像が目的のサイズになるようにすることもできますが、PNG、特にJPGのファイルサイズははるかに小さくなります。
PNGの場合、実際の品質設定はないため、ファイルサイズを実際に制御することはできません。
Jpgには、画像の品質を決定する品質設定があります。品質設定が低いと、ファイルが小さくなります。ただし、通常、「サイズxのファイルに必要な品質を与える」オプションはありません。
メモリ内のjpgに変換し、出力の大きさを確認し、品質を上下に調整し、十分に近づくまで繰り返すという、かなり非効率的なアプローチを使用して、同じ結果を達成できます。それはひどいように聞こえるかもしれませんが、画像が大きすぎない場合は、これを行っている間に短い遅延に気付かないかもしれません。