从 bmp 文件中读取字节
如何使用 C 语言从 bmp 文件中读取字节?
How do I read the bytes from a bmp file using C?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何使用 C 语言从 bmp 文件中读取字节?
How do I read the bytes from a bmp file using C?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
这是一个通用框架,用于加载二进制文件,并返回指向第一个字节的指针。 这可以归结为“fopen() 后跟 fread()”,但是……有点冗长。 尽管检查了错误并且我相信此代码是正确的,但没有错误处理。 此代码将拒绝空文件(根据定义,空文件不包含任何要加载的数据)。
您可以使用其他答案中提供的链接轻松添加代码来解析 BMP 标头。
Here's a general-purpose skeleton to just load a binary file, and return a pointer to the first byte. This boils down to "fopen() followed by fread()", but is a ... bit more verbose. There's no error-handling, although errors are checked for and I believe this code to be correct. This code will reject empty files (which, by definition, don't contain any data to load anyway).
You can easily add the code to parse the BMP header to this, using links provided in other answers.
按照其他人的建议使用 fopen 和 fread 。 有关 bmp 标头的格式,请查看此处
Use fopen and fread as suggested by others. For the format of the bmp header take a look here
fopen 后接 fread
fopen followed by fread
ImageMagick 支持 BMP。 您可以使用两个 C API 中的任何一个:低级 MagickCore 或更高级别的魔术棒。
ImageMagick supports BMP. You can use either of two C APIs, the low-level MagickCore or the more high level Magick Wand.
确保该文件未使用 RLE 方法压缩。 否则,在读取头文件并了解其尺寸后,您必须从文件中读取并转储到缓冲区中以重建图像。
make sure this file is not compressed using RLE method. otherwise, you'll have to read from the file and dump into a buffer to reconstruct the image, after reading the header file and knowing it's dimensions.