我正在尝试重新调整上传图片的大小。根据我在网上找到的,这样做的方法是创建一个你想要的大小的新图像,然后使用Graphics将图像绘制成一个较小的图像。除了尼康D90相机的图像外,这些图像似乎适用于上传的每张图像。每次我尝试上传并重新调整这些图像的大小时,我都会在下面显示的行中看到OutOfMemoryException。谁能告诉我我做错了什么。
'Create the new image as a blank bitmap
Dim resized As Image = New Bitmap(newWidth, newHeight)
'Create a new graphics object from the new image
Dim g As Graphics = Graphics.FromImage(resized)
'Resize graphics object to fit onto the resized image
g.DrawImage(originalImage, New Rectangle(0, 0, resized.Width, resized.Height)) <-- Exception
g.Dispose()
答案 0 :(得分:2)
你是如何加载图像的? System.Drawing.Image.FromFile
?根据.Net Developer Center,如果图像文件损坏或GDI +无法识别的格式,则抛出OutOfMemoryException。
你能在像Paint.Net这样的图像编辑程序中打开图像吗?如果是这样,请将其保存为JPEG或其他内容,然后尝试在应用程序中打开已保存的程序。
如果这样可以解决问题,原始图像会出现图像编辑器可以处理的某种损坏或格式,但DrawImage不能。您必须通过图像编辑器传递损坏的图像来修复它们。您必须找到一个带有命令行或脚本界面的图像编辑应用程序,您可以从应用程序中调用该界面。
答案 1 :(得分:0)
我认为如果变量调整大小,这段代码将正常工作 图像设置正确。
你有一个零大小的imace或矩形??