我想选择多个(在我的情况下77)图像,并将它们转换为其他大小和格式。 我做了一个Ilist(字符串)listaslika,其中包含来自文件夹的图像名称列表。 tbSelect是一个文本框,其中包含图像所来自的文件夹路径,而tbSave包含将保存图像的文件夹。 现在我想调整他们所有的人,即使我处置了一切,我有内存泄漏,有什么建议吗?提前致谢。并行foreach内存泄漏位图
private void button3_Click(object sender, EventArgs e)
{
int W = Convert.ToInt32(txtW.Text);
int H = Convert.ToInt32(txtH.Text);
Parallel.ForEach(listaslika, slika =>
{
Bitmap bpm = new Bitmap(W, H);
Graphics graphic = Graphics.FromImage(bpm);
img = Image.FromFile(tbSelect.Text + "\\" + slika);
graphic.DrawImage(img, 0, 0, W, H);
graphic.Dispose();
img = bpm;
((Button)sender).Enabled = false;
string select = Path.GetFileNameWithoutExtension(slika);
img.Save(tbSave.Text + "\\" + select + exten[GetSelecetedIndex()]);
bpm.Dispose();
img.Dispose();
});
你没有处置产生的图像实例与Image.FromFile –