需要对图片取缩略图,图片尺寸是10200*14028 ,利用graphics处理总是失败,提示内存不足,有没有其他的方法啊?
代码如下,求大神解救啊:
string outFileName = FileSystem.ConvertPathFrom + "temp.jpg"; System.Drawing.Image img = System.Drawing.Image.FromFile(filename); int w, h; if (img.Width > 5000 || img.Height > 5000) { w = img.Width / 10; h = img.Height / 10; } else { w = img.Width; h = img.Height; } System.Drawing.Bitmap bmSave = new System.Drawing.Bitmap(w, h); //用于保存图片的位图对象 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmSave); g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed; System.Drawing.Rectangle rDes = new System.Drawing.Rectangle(0, 0, w, h); System.Drawing.Rectangle rScr = new System.Drawing.Rectangle(0, 0, img.Width, img.Height); g.DrawImage(img, r, r, System.Drawing.GraphicsUnit.Pixel); bmSave.Save(outFileName, System.Drawing.Imaging.ImageFormat.Jpeg); filename = outFileName; g.Dispose(); bmSave.Dispose(); img.Dispose();
你的程序是32位的吧,最大内存只有1个多G,改成64位的就可以了。
这不合适吧。。。是不是.net限制了
@zouzouol:
不是.net的限制,这个是windows的限制。 其它语言写的32位程序一样只能占1G多点的内存。
没有找到方法,只能先用图片编辑软件把图片尺寸变小了