【发布时间】:2011-06-07 01:47:27
【问题描述】:
谁能帮我写下下面的代码?我在第 4 行收到“参数异常”。 InnerException 什么都不是。
Using btm As Bitmap = Image.FromStream(importFile.InputStream)
Using newImage As Bitmap = ResizeImage(btm, StoringSize)
Dim stream As New MemoryStream
newImage.Save(stream, Imaging.ImageFormat.Bmp) 'Argument exception occurred. Parameter is not valid
StoringFilesHelper.SaveFile(fileName, stream, folderType)
End Using
End Using
此代码正常运行,没有任何异常:
Using btm As Bitmap = Image.FromStream(importFile.InputStream)
Using newImage As Bitmap = ResizeImage(btm, StoringSize)
'Dim stream As New MemoryStream
'newImage.Save(stream, Imaging.ImageFormat.Jpeg)
'StoringFilesHelper.SaveFile(fileName, Stream, folderType)
Dim filePath As String = StoringFilesHelper.GetLocalPath(fileName, folderType)
newImage.Save(filePath)
End Using
End Using
终于找到了原因。 http://blog.lavablast.com/post/2007/11/29/The-Mysterious-Parameter-Is-Not-Valid-Exception.aspx 图片是在 ResizeImage 方法中处理的。
【问题讨论】:
-
ArgumentException 消息应该告诉您它发生的参数,可能还有 InnerException,它应该告诉您导致 ArgumentException 的基础异常。贴出来,会有帮助的。
-
根据 msdn Image.Save(...) 抛出 ArgumentNullException 和 ExternalException。 ResizeImage 工作正常吗?
-
ArgumentException不会被Image.Save方法抛出(参见 documentation)。如果您的意思是ArgumentNullException,那么问题很可能出在代码的其他地方。有很多我们看不到的方法调用。他们在做什么?他们是否抛出异常? -
@Nickolodeon:ResizeImage 工作正常(请参阅帖子中的更新)。 @Cody Gray:我正好有 ArgumentException
-
笨蛋,我看不出问题所在。您并不总是在 Release 版本中获得正确的行号。我只将 SaveFile() 视为可能的失败模式。
标签: .net vb.net image stream bitmap