1

有谁知道加载位图并处理所有情况的好 C 示例:rle、b/w 位图等等?

代码应该是跨平台的。

谢谢。

4

7 回答 7

5

我建议使用像SDL image这样的库

于 2009-11-03T16:56:32.430 回答
3

如果您正在寻找最小的 bmp 加载器,此链接将为您提供有关 BMP 格式、数据结构和示例代码的所有信息,无需加载任何库依赖项:

http://paulbourke.net/dataformats/bmp/

它还包含在打开的 gl 纹理中查看加载的 BMP 的代码,所以几乎所有你需要的......

于 2009-11-03T21:30:47.080 回答
1

Chris Backhouse 制作了一个实用的小型 BMP 加载器(着眼于将它们用作 OpenGL 纹理)。它是 C++,而不是 C,而且他承认它不是跨平台的。但是,它很小且易于理解,因此我想在此处添加链接:

http://users.ox.ac.uk/~orie1330/bmploader.html

于 2009-11-03T17:29:07.513 回答
1

您需要一些外部库来执行此操作(我推荐ImageMagick)。ImageMagick 网站还包括文档和示例。

于 2009-11-03T19:04:03.570 回答
1

查看英特尔开发的 OpenCV 库。

于 2009-11-03T20:33:42.303 回答
0

如果您与 BMP 文件格式相关联,那么自己查看标题并获取像素非常简单。 看到这个谷歌搜索。更有趣的比赛之一在这里。最反直觉的部分是每一行像素都是 4 字节对齐的。另外,请注意压缩的 BMP...(我的经验是,许多第三方工具在压缩 BMP 时会遇到问题,所以您遇到的某些库可能也会..)

如果你不依赖 BMP 文件格式,我推荐 libpng。该手册提供了一些非常清晰的示例代码。

于 2009-11-03T16:57:13.810 回答
0

正如其他人建议的那样,您可能想要使用像 SDL 这样的外部库。如果您想学习并自己动手,请参阅我对这个非常相似的问题的回答:Getting RGB values for each pixel from a 24bpp Bitmap for conversion to GBA format in C where you'll find C code which prints out each pixel,并查看有关 bmp 文件的维基百科页面,因为它非常好。

于 2009-11-03T21:19:57.070 回答