超过50M的大图片缩小时提示 内存不足

问题描述

使用c#对超过50M的大图片缩小时提示“内存不足”System.IO.FileStreamfs=null;fs=newSystem.IO.FileStream(source,System.IO.FileMode.Open,System.IO.FileAccess.Read);ImagesrcImage=System.Drawing.Image.FromStream(fs);fs.Close();红色的地方开始报错privatevoidPercentImage(System.IO.FileStreamfs){//System.IO.FileStreamfs=null;//fs=newSystem.IO.FileStream(sfile,System.IO.FileMode.Open,System.IO.FileAccess.Read);ImagesrcImage=System.Drawing.Image.FromStream(fs);//fs.Close();//缩小后的高度intnewH=0;//int.Parse(Math.Round(srcImage.Height*percent).ToString());//缩小后的宽度intnewW=0;if(srcImage.Height>srcImage.Width){newH=1000;newW=(1000*srcImage.Width)/srcImage.Height;}else{newW=600;newH=(600*srcImage.Height)/srcImage.Width;}//int.Parse(Math.Round(srcImage.Width*percent).ToString());Bitmapb=null;try{//要保存到的图片b=newBitmap(srcImage,newW,newH);Graphicsg=Graphics.FromImage(b);b.Save("c:\temp\tmp.jpg");}catch(Exceptionex){newDAL().err(AppPath,"查看电子文件--断点下载缩小:",ex.Message);}finally{b.Dispose();srcImage.Dispose();//File.Delete(sfile);}}

解决方案

解决方案二:
在网上看到一个图像处理时内存不足的问题说是可以用分块复制处理,不知道可以用来做缩放不,哪位知道具体怎么操作?
解决方案三:
你要缩小,明显是有损压缩为什么不干脆先转jpg,会容易处理的多50M直接变成<1M

时间: 2024-08-24 01:09:40

超过50M的大图片缩小时提示 内存不足的相关文章

C#编写的串口摄像头监控系统,怎么解决读取图片长度时提示内存不足的情况,求大神给出详细代码

问题描述 用C#编写的串口摄像头监控系统,怎么解决读取图片长度是提示内存不足的情况 解决方案 解决方案二:你这个图片保存以后,用windows自带的工具可以打开吗?如果不行,还是你传入的字符串或者你转换字符串到byte数组出的问题解决方案三:点保存能保存,但是没有收到数据,我可以发给你源代码,你帮我看看可以不解决方案四:在f.close()之前,你加上f.flush();试试看解决方案五:你保存的a.tmp有问题.你用windows自带的看图程序打开看看解决方案六:重复附值时,加上释放之前内存的

javaweb-jacob 生成word时提示 内存不足

问题描述 jacob 生成word时提示 内存不足 环境是:win2008 r2 jdk: 1.7(64bit) tomcat: tomcat7.0(64bit) com.jacob.com.ComFailException: Invoke of: Add Source: Microsoft Word Description: 内存不足,请现在保存文档. at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.com.Dispa

访问php时提示内存位置访问无效的解决办法和思路分析_win服务器

我们就需要找到是哪一个DLL文件加载出现了问题.排查方法是: 将php.ini中 display_startup_errors = Off 改为display_startup_errors = On . 这是访问php页面,服务器上会弹出php错误的提示对话框,你就可以明确看到是哪一个dll文件加载失败,有时会有多个dll文件加载失败,需要你先分号(;)注释掉php.ini中提示那个dll后继续访问如此反复排查. 把出问题的dll都用分号(;)注释掉后,php就可以正常运行了. 如果加载失败的d

freelibaray-DLL调用DLL,程序直行至FreeLibaray时提示内存错误

问题描述 DLL调用DLL,程序直行至FreeLibaray时提示内存错误 Debug Assertion Failed! Expression: _CrtIsValidHeapPointer(pUserData) 我在外层DLL中定义了一个全局变量,作为其调用的参数,当程序执行到FreeLibaray时死锁,但是调用的函数已经执行完毕!不知如何处理,请各位大虾指点!

64位win7旗舰版如何解决安装软件时提示内存不足

  原因分析: 出现这样的故障其实并不是真正内存出现不足,其实这是因为win7系统用户使用操作系统平台导致的. 小常识:如果用户使用的是32位操作系统,那么关于内存大小基本上没有什么要求,只要超过1GB就可以,但是如果使用的是64位操作系统的话,那么对于内存条大小要求就不一样,基本上是要求至少在4GB以上才可以. 而win7系统用户在安装软件过程中,明明内存还有很多剩余空间,但是系统却会提示出内存不足提示,其实是因为使用的是64位系统,而对内存要求没有达到基本要求,所以才会出现这种情况的. 解决

VS2010 剪切 复制文本时提示‘内存不足 能由于虚拟地址空间碎片过多导致’的解决办法

最近在使用VS2010 剪切 复制文本时 一直出现 '在此次程序运行时,可用内存容量不足,可能由于虚拟地址空间碎片过多导致,请稍后再试.'的提示,网上查了下,发现微软已经针对该问题发布了一个官方补丁,安装该补丁后可以解决该问题.    官方补丁下载: https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=29729 关于此事件的解释:       微软Visual Studio E

win8电脑在关闭游戏时提示内存不足怎么办

  很多用户都会打游戏,使用咱们的win8电脑来打游戏,毕竟,相对来说,现在的win8电脑就是市场的主流系统,不管是体验来时视觉,都比之前的win7 64位旗舰版iso电脑更上一个台阶,不过似乎咱们在具体的使用win8电脑打游戏的时候还是会遇上一些状况,这不,最近就有一位用户提到说,在使用win8电脑来打游戏的时候,关闭游戏时会受到内存不足的提示.其实造成该提示的原因是咱们win8电脑中物理内存比较小,下面,小编就具体的来介绍一下解决的办法. 1.首先,咱们需要返回到win8电脑的传统桌面位置,

ps保存时提示内存不足(RAM)的处理

第一先把其他文件关掉在试试: 第二修改暂存盘(编辑---首选项---暂存盘)可以选两三个暂存盘(不要选C盘啊)不过这个一般要重启PS才有效的,所以文件保存不了只能从做了: 第三保存JPG的时候选择第一个基线标准就行了,不要选第二个优化. 分类: PS入门教程

关机时提示内存不能为read怎么办

  完全注册dll:打开"运行"输入→cmd→回车 然后把下面这行字符复制到黑色cmd框里面去回车 如下图: 等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符 后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止. (下面是要运行的代码): for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1 完成后重新启动机器.