作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个 silverlight 项目,用户可以在其中创建自己的拼贴画。
问题
当使用 BitmapImage 类加载一堆图像时,Silverlight 会占用大量不合理的 RAM。 150 张图片,其中单张图片最多占 4.5mb,占用大约 1.6GB 的 RAM——因此最终会抛出内存异常。
我通过流加载它们,因为用户选择他们自己的照片。
我在找什么
一个类、方法或一些过程来消除被吸走的大量 RAM。速度是个问题,所以我不想在图像格式或类似格式之间进行转换。快速调整大小的解决方案可能会奏效。
我曾尝试使用 WriteableBitmap 将图像渲染到其中,但我发现这种方法迫使我在拖放和其他我希望用户能够对图像执行的操作时重新发明轮子。
最佳答案
我会尝试加载每个流并将其调整为缩略图(例如 640x480),然后再加载下一个流。然后让用户使用较小的图像。准备好生成 PDF 后,一次一个地从原始流中重新加载 JPEG,在加载下一个之前处理每个位图。
关于c# - 如何在不占用大量内存的情况下显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2451263/
我是一名优秀的程序员,十分优秀!