void SplitImage()
{
int posLeft=int.Parse(this.disLeft.Text.Trim());
int posTop=int.Parse(this.disTop.Text.Trim());
int posRight=int.Parse(this.disRight.Text.Trim());
int posBottom=int.Parse(this.disBottom.Text.Trim());
string save=this.saveFolder.Text.Trim();
save=save.EndsWith("\\")?save:save+"\\";
string[] pics=Directory.GetFiles(this.selFolder.Text.Trim());
Image img1=Image.FromFile(this.txtSource.Text.Trim());
Graphics gra1=Graphics.FromImage(img1);
foreach(string s in pics)
{
FileInfo file=new FileInfo(s);
Image img=Image.FromFile(s);
//new Rectangle(0,0,img.Width-posLeft-posRight,img.Height-posTop-posBottom),
gra1.DrawImage(img,new Rectangle(0,0,img.Width-posLeft-posRight,img.Height-posTop-posBottom),new Rectangle(posLeft,posTop,img.Width-posLeft-posRight,img.Height-posTop-posBottom),GraphicsUnit.Pixel);
switch(this.boxFile.SelectedItem.ToString())
{
case "GIF":img1.Save(@save+file.Name.Substring(0,file.Name.LastIndexOf("."))+".gif",ImageFormat.Gif);break;
case "JPG":img1.Save(@save+file.Name.Substring(0,file.Name.LastIndexOf("."))+".jpg",ImageFormat.Jpeg);break;
case "PNG":img1.Save(@save+file.Name.Substring(0,file.Name.LastIndexOf("."))+".png",ImageFormat.Png);break;
case "BMP":img1.Save(@save+file.Name.Substring(0,file.Name.LastIndexOf("."))+".bmp",ImageFormat.Bmp);break;
case "TIFF":img1.Save(@save+file.Name.Substring(0,file.Name.LastIndexOf("."))+".tiff",ImageFormat.Tiff);break;
}
img.Dispose();

file=null;
}
gra1.Dispose();
img1.Dispose();
MessageBox.Show(this,"处理完成!");主要是打开一个空白图片文件,用别的图截取一部分填上这个空白文件,循环一个文件夹里的所有文件.
但是运完后,出错"内存不足",但是所有的图片都可以处理完成!
请看看什么原因.