WriteableBitmap 内存溢出?

Nick_Ngai 2014-05-10 12:50:00
我用Photo camera进行拍照,在保存图片时,因为图片方向是逆转90度,
所以我使用WriteableBitmap.render(Image,TransformGroup)这个方法把图片调整为正确方向。
但是WriteableBitmap占用了大量内存不能释放,导致内存溢出。
另外我需要压缩图片,但是尽量不改变图片尺寸,所以我使用了
writeableBitmap.SaveJpeg(outstream, (int)width, (int)height, 0, quality);

怎么能够释放WriteableBitmap内存?
网上搜资料说尽量不使用WriteableBitmap,但是我这里需要调整图片方向,以及压缩图片。还有什么方法可以实现?
我有在网上找关于Photo camera的资料,但是除了使用WriteableBitmap,目前没有找到我这个问题怎么解决?
...全文
630 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
erictang2003 2014-08-10
  • 打赏
  • 举报
回复
我觉得,问题不在writeableBitmap ,而在于,你把writeableBitmap绑定到显示控件上,调用后,必须先切断这个显示控件和writeableBitmap的连接。然后writeableBitmap才会被释放。 一般切断显示控件连接的方法是 control.Source = null 。你可以试试。
Nick_Ngai 2014-05-15
  • 打赏
  • 举报
回复
我的解决方法如下: 在程序中创建一个writeableBitmap实例,每次都是用同一个writeableBitmap实例,这样可以减少些内存。 使用了writeableBitmap.SaveJpeg(memoryStream, (int)saveSize.Width, (int)saveSize.Height, 0, 70); 读取图片时使用了PictureDecoder.DecodeJpeg(pic.GetImage(), 200, 200);

7,655

社区成员

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

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