1

画像ファイルのサイズを希望のサイズに変更するにはどうすればよいですか?800KBから100KBの画像のように?

私は3MBの画像を持っています:(2560 X 1600)300 dpi、ビット深度24元のファイルですが、新しいファイルは同じサイズを維持し、dpiSetResolutionは効果を生み出しません。

Bitmap image = Bitmap.FromFile("myPic.jpeg");
image.SetResolution(96, 96);
image.Save("newPic.jpeg");

次に、このコードを使用しました

// Reads Image
Bitmap image = Bitmap.FromFile("myPic.jpeg");

// Sets canvas with new dpi but same dimensions and color depth
Bitmap canvas = new Bitmap(image.Width, image.Height, PixelFormat.Format24bppRgb);
canvas.SetResolution(150, 150);

// Draw image on canvas through graphics
Graphics graphics = Graphics.FromImage(canvas);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height),
            new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);

// Saved Image
bitmap.Save("newPic.jpeg");

ここで、dpiは新しいファイル用に変更されましたが、ファイルサイズは7.84MBに跳ね上がります

どこに問題がありますか?dpiはファイルサイズに影響しますか?

ご検討をお願いいたします。祝福されたまま

4

1 に答える 1

2

解像度(ppi / dpi)はファイルサイズに影響しません。これは、画像の物理的なサイズの大きさ、つまりピクセルサイズをインチに変換する方法に関する情報のみです。

別の解像度を使用して画像を再保存すると、これら2つの値を除いて、ファイルは完全に同一になります。

新しいビットマップを作成してその上に画像を描画すると、新しいビットマップオブジェクトにはファイルタイプが関連付けられていないため、ファイルタイプを指定せずに保存すると、JPEGではなくPNG画像として保存されます。 。

ピクセルサイズを変更せずにファイルサイズを変更するには、JPEGファイルの圧縮レベルを変更する必要があります。

MSDN:方法:JPEG圧縮レベルを設定する

于 2013-03-17T13:30:54.403 に答える