if (pictureBox1.Image == null) return;
Bitmap srcmap = null, destbit =null;
Graphics g = null;
try
{
//例如:图片目标大小为:320*240
GC.Collect();GC.WaitForPendingFinalizers();
srcmap = new Bitmap(pictureBox1.Image);
//Bitmap srcmap = new Bitmap(strImageFile);
//图片文件=strImageFile,直接NEW出某图片文件时,如图片太太会出现OutOfMemory的异常哦,不知如何解决@@
destbit = new Bitmap(320, 240);
Rectangle srcRec = new Rectangle(0, 0, srcmap.Width, srcmap.Width);
Rectangle destRec = new Rectangle(0, 0, 320,240);
g = Graphics.FromImage(destbit);
g.DrawImage(srcmap, destRec, srcRec, GraphicsUnit.Pixel);
destbit.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);//保存较大Jpeg,如1280*1024图片时,比较消耗内在哦。
if (g != null) { g.Dispose(); g = null; }
if (destbit != null) { destbit.Dispose(); destbit = null; }
if (srcmap != null) { srcmap.Dispose(); srcmap = null; }
GC.Collect();GC.WaitForPendingFinalizers();
}
catch (Exception ex)
{
if (g != null) { g.Dispose(); g = null; }
if (destbit != null) { destbit.Dispose(); destbit = null; }
if (srcmap != null) { srcmap.Dispose(); srcmap = null; }
GC.Collect();GC.WaitForPendingFinalizers();
MessageBox.Show(ex.Message);
}
//如果大家有更好的方法,请多多指教,TKS!