我對以下代碼有疑問。我在下面的代碼成功運行了一個目錄,並將圖片的分辨率設置爲較小的尺寸。但是,文件大小不會更改。例如,尺寸爲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,需要大約一秒鐘才能理解。 –