许多站点描述了istream :: putback()函数,它允许您将一个字符"放回"到输入流中,以便您可以在后续的读取操作中再次读取它.
但是,阻止我在同一个流上按顺序多次调用putback()会有什么阻碍?当然,你应该在每次操作后检查错误,以确定它是否成功; 然而,我想知道:有没有保证特定类型的流支持一次放回多个字符?
我只是在这里猜测,但我可以想象istringstream能够放回与流中字符串长度一样多的字符; 但我不太确定ifstream的情况是一样的.
这是真的吗?如何才能知道我有多少个字符可以补篮()为istream对象?
我目前正在创建一个软件工具,它生成的图像包含每个像素的独立 RGBA 信息 - 这意味着红色、绿色、蓝色和alpha分量应该被读取并视为单个像素中的单独实体(即没有 alpha 预乘或任何其他数据组合技巧)。
这些图像必须存储在磁盘上。目的是以一种可以轻松读取图像的各个像素的方式存储它们,然后通过简单的 C 程序一次读取一个像素。另一个要求是存储的图像本身应该可以被至少一个操作系统工具(MacOS 的预览、Windows 的画图、Web 浏览器或在计算机中查看图像的任何其他常用工具)可见。
我可以用来存储上述数据的最简单的图像文件格式是什么?我发现的最接近的是 TIFF;然而,规范要求 RGBA 值进行 alpha 预乘。您还知道哪些其他格式可以让我以未压缩的 RGBA 纯格式存储图像数据?
需要明确的是,文件大小不是问题。像素中组件的顺序也不是问题;对于本项目中的所有实际用途,BGRA 与 RGBA 同等有效。