oSmall = oImage.GetThumbnailImage(nWidth, nHeight, null ,IntPtr.Zero);
生成的缩略图长度或宽度不能为0.检查一下上面的语句中nWidth,nHeight的值
如果为0,系统不能处理,就认为"内存不足"了
可以先判断一下你要处理的图片,给予长度或宽度有0的考虑处理,再进行缩略。
生成的缩略图长度或宽度不能为0.检查一下上面的语句中nWidth,nHeight的值
如果为0,系统不能处理,就认为"内存不足"了
可以先判断一下你要处理的图片,给予长度或宽度有0的考虑处理,再进行缩略。
按照fun1984(程神) 说的检查一下
果然是图片宽度或者高度为0的问题。我原本是打算按照比例来缩放,表达式是这样:
if (oImage.Width > oImage.Height)
{
nNewWidth = 100;
nNewHeight = 100/oImage.Width * oImage.Height; //呵呵,就是错在这里
}改成这样就对了:
nNewHeight = (int)(100d / (double)oImage.Width * (double)oImage.Height);