我对以下代码有疑问。我在下面的代码成功运行了一个目录,并将图片的分辨率设置为较小的尺寸。但是,文件大小不会更改。例如,尺寸为2400x1800且文件大小为1.5MB的图片将缩放至800x600,但800x600图片的文件大小仍为1.5MB。我想我可能不得不明确压缩图片,但我不确定。有任何想法吗?C#简单图像调整大小:文件大小不缩小
private void Form1_Load(object sender, EventArgs e)
{
string[] files = null;
int count = 0;
files = System.IO.Directory.GetFiles(@"C:\Users\..\..\ChristmasPicsResized");
foreach (string file in files)
{
System.Drawing.Bitmap bmp = System.Drawing.Bipmap.FromFile(file);
ResizeBitmap(bmp, 807, 605).Save(
@"C:\users\..\..\TempPicHold\Pic" + count.ToString() + ".jpg");
count++;
}
}
public Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
{
Bitmap result = new Bitmap(nWidth, nHeight);
using (Graphics g = Graphics.FromImage((Image)result))
g.DrawImage(b, 0, 0, nWidth, nHeight);
return result;
}
另外,请查看您需要避免的[image resizing pitfalls](http://nathanaeljones.com/163/20-image-resizing-pitfalls/)。现在你泄漏GDI手柄,内存,并产生低质量的图像。 –
其实,为什么不使用避免所有运行的GDI错误的库呢? http://imageresizing.net库是免费的,开放源代码,支持并且有详细记录。它有一个1行的API,需要大约一秒钟才能理解。 –