3

2014 年 6 月 4 日

我需要(如果可能)在 SDL 1.2 中创建一个 bpp = 1 的表面。bpp 是每像素位数。

我在 100% 黑白工作,“表面”尺寸大得离谱,我的物理记忆让我瓶颈。我有 4GB 的内存,程序需要在预算机器上运行,这意味着 2-4 演出。我一直在使用 8 的颜色深度;我想我实际上浪费了大约 3/4 的记忆?我将表面保存为 .bmp 文件,该文件应该支持 bpp = 1 的黑白格式。

有什么办法可以降低 SDL 中的 bpp 还是我应该寻找替代方案?


2014 年 6 月 5 日

我在大约 39000x39000 像素、8 位色深的机器上遇到了瓶颈。因为 SDL 将表面存储在物理内存中,所以我的 RAM 用完了。处理能力不是问题,因为我正在渲染静止图像。我希望把这个分辨率加倍,但我会尽我所能。是的,我可以将图像拆分为多个文件,但因为它将在以后进行高分辨率激光打印,所以无论如何它都必须作为单个文件打开。目标是将程序打包为一个单元,而不需要额外的步骤来在另一个程序中拼接和转换图像。

SDL 和 c++ 通常似乎不支持单个位变量(不包括布尔值),因此使用 SDL 将颜色值分配给 1 bpp 像素超出了我的范围。

4

0 回答 0