c# - 高效处理超宽但不是那么高的位图?

标签 c# bitmap memory-management

有什么方法可以创建更节省空间/资源的位图吗? 目前我尝试渲染一个文件,大约 800px 高但大约 720000px 宽。 它使我的应用程序崩溃,大概是因为位图的共享内存大小。

我能否更有效地做到这一点,比如直接将其创建为 gif 而不是稍后保存时?

我尝试从真实世界读数中保存一系列直线/矩形,我希望它是每 1/100 秒 1 像素。

最佳答案

您必须记住,您加载到内存中的任何图像,无论是 GIF 或 JPEG 还是磁盘上的任何内容,都将变成 32 位位图,这意味着每个像素四个字节。

这意味着您正在创建的图像将是:

4 bytes * 800 pixels high * 720,000 pixels wide = 2,304,000,000 bytes

您试图创建这么大的图像基本上是在破坏您的内存。

无论您想要完成什么,答案都是平铺和缓存您的图像

关于c# - 高效处理超宽但不是那么高的位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624187/

相关文章:

C malloc 一个指针多次

c# - GPS定位API?

c# - 如何从 C# 后端获取 JavaScript 值

c - 在 C 中模拟可变大小结构;对齐、性能问题

matrix - 快速可视化一个大的二进制矩阵?

android - 如何在位图周围创建浮雕?

在静态内存上调用 C free() 函数(在非动态分配的内存上)

c# - Windows Phone 8 AWAIT异步JSON

c# - visual studio 2013中 "default"的代码生成策略

Android lrucache