关于C#,MemoryStream 和GDI+的问题。

eoa1986 2010-05-23 11:25:19
为了实现某个功能,我要用到GDI+,是国外一个人给c#封好的,见这里
http://community.opennetcf.com/articles/cf/archive/2007/10/31/using-gdi-on-windows-mobile.aspx

我希望把图片从网上下载下来,然后再传入这个这个人封好的一个类BitmapPlus中,我是这样做的

private void MakePicure(string imageurl)
{
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(imageurl);
httpRequest.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();

m_bmp = new Bitmap(httpResponse.GetResponseStream());
httpResponse.Close();


MemoryStream ms = new MemoryStream();
m_bmp.Save(ms, ImageFormat.Jpeg);
StreamOnFile sf = new StreamOnFile(ms);
m_bmpp = new BitmapPlus(sf);
}


实验了好多方法,只有这个能成功,就是先把下载的数据存成bitmap,然后存成MemoryStream ,然后存成StreamOnFile ,最后才能给m_bmpp这个BitmapPlus类,我感觉比较麻烦,

并且最大的问题是执行几次时候他说我m_bmp.Save(ms, ImageFormat.Jpeg);这一句内存溢出,我想知道MemoryStream 的操作哪里不规范了,才导致这种情况。
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondma 2010-05-24
  • 打赏
  • 举报
回复
用USING的方法把那个流初始化出来。
snoring 2010-05-24
  • 打赏
  • 举报
回复
对于。NET对象的NEW,好象不好释放,是自动的,人工干涉不了,只有类似Delphi,VC++的本机代码才可以很方便地手工释放
mayonglong 2010-05-24
  • 打赏
  • 举报
回复
帮顶~
程序员Linc 2010-05-23
  • 打赏
  • 举报
回复
楼主new了好多对象,
貌似应该释放一下吧
eoa1986 2010-05-23
  • 打赏
  • 举报
回复
小点的图能多重复几次,大点的图就少重复几次就out of memory了,明显是释放不掉,我不知道该怎么释放
ginpq 2010-05-23
  • 打赏
  • 举报
回复
你试试小一点的图片,移动平台有单程序内存上限的,30M左右。
eoa1986 2010-05-23
  • 打赏
  • 举报
回复
顶起来
eoa1986 2010-05-23
  • 打赏
  • 举报
回复
该如何释放

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧