程序主要代码如下:是用来分割图片的.
代码运行后,图片数量少时,没问题,当数量比较多时,就报内在不足.
请高手帮忙解决一下啊!Bitmap originalBitmap;
Bitmap secondBitmap;
string[] dirs = Directory.GetFiles(textBox1.Text);
foreach (string dir in dirs)
{
string[] filename=dir.Split('\\');
string[] fname=filename[filename.Length-1].Split('.');
originalBitmap = new Bitmap(dir);
for(int i=0;i<arr.Count;i++)
{
imgDes imgTmp=(imgDes)arr[i];
Rectangle angle1=new Rectangle(imgTmp.x,imgTmp.y ,imgTmp.width,imgTmp.height);
secondBitmap = originalBitmap.Clone(angle1,PixelFormat.DontCare);
switch(fname[1].ToLower())
{
case "jpg":
case "jpeg":
secondBitmap.Save(textBox2.Text +'\\'+ fname[0]+imgTmp.filename +"."+fname[1], System.Drawing.Imaging.ImageFormat.Jpeg ) ;
break;
case "tif":
case "tiff":
secondBitmap.Save(textBox2.Text +'\\'+ fname[0]+imgTmp.filename +"."+fname[1], System.Drawing.Imaging.ImageFormat.Tiff) ;
break;
}
secondBitmap.Dispose();
secondBitmap=null;
System.GC.Collect();
}
originalBitmap.Dispose();
originalBitmap=null;
System.GC.Collect();}
代码运行后,图片数量少时,没问题,当数量比较多时,就报内在不足.
请高手帮忙解决一下啊!Bitmap originalBitmap;
Bitmap secondBitmap;
string[] dirs = Directory.GetFiles(textBox1.Text);
foreach (string dir in dirs)
{
string[] filename=dir.Split('\\');
string[] fname=filename[filename.Length-1].Split('.');
originalBitmap = new Bitmap(dir);
for(int i=0;i<arr.Count;i++)
{
imgDes imgTmp=(imgDes)arr[i];
Rectangle angle1=new Rectangle(imgTmp.x,imgTmp.y ,imgTmp.width,imgTmp.height);
secondBitmap = originalBitmap.Clone(angle1,PixelFormat.DontCare);
switch(fname[1].ToLower())
{
case "jpg":
case "jpeg":
secondBitmap.Save(textBox2.Text +'\\'+ fname[0]+imgTmp.filename +"."+fname[1], System.Drawing.Imaging.ImageFormat.Jpeg ) ;
break;
case "tif":
case "tiff":
secondBitmap.Save(textBox2.Text +'\\'+ fname[0]+imgTmp.filename +"."+fname[1], System.Drawing.Imaging.ImageFormat.Tiff) ;
break;
}
secondBitmap.Dispose();
secondBitmap=null;
System.GC.Collect();
}
originalBitmap.Dispose();
originalBitmap=null;
System.GC.Collect();}
解决方案 »
- [正则相关]如何在只更改表达式的情况下,让匹配不到就Match.Success为true
- 如何在dataset没有数据绑定时,使datagridview原有的数据清空?
- TREEVIEW控件图片显示问题
- wcf性能问题,生产出现
- 请教Winform达人:在panel中实现拖拽功能!
- 网络数据 过滤
- 在线的帮忙:问 C#如何操作mysql数据库服务器
- 关于关闭线程的问题!!!!
- 有没有什么在文件里面查找字符串比较快的方法呢?注我的文件有2兆左右,但是运行在wince.net中,如果把整个文件一起加载到内存中的话,内
- 如何得到网页上的URL信息????
- Visual Studio 2005 Professional .Edition(RTM)和Visual Studio 2005 Team Suite.Edition(Release Candidate)什么区别?
- 已知dataGrid填上了数据,请问怎么得到有几列,每一列的标题是什么?
增加了:
1、分组行是否隐藏
2、分组字段是否隐藏
3、分组行的(+/-)号是否显示
4、分组行缩排的功能
5、多个字段做为一个组来同级分组
(比如将编号和名称合并做为同一级来分组)
下载地址:
http://www.dcmscn.cn/dispbbs.asp?boardid=8&id=308
secondBitmap=null;
System.GC.Collect();就是希望图片在处理完后,立刻收回内存.可是也还不行啊.希望高人们帮忙啊.
secondBitmap = originalBitmap.Clone(angle1,PixelFormat.DontCare);如果 Rectangle 超出了originalBitmap的Size时会报"内存不足.",我遇到过这种情况.检查出错时的图像文件Size与Rectangle 试试看.