有没有人知道一个好的C样本加载位图并处理所有情况:rle,b / w位图等等?
代码应该是跨平台的。
感谢。
答案 0 :(得分:5)
我建议使用像SDL image
这样的库答案 1 :(得分:2)
如果您正在寻找一个最小的bmp加载器,这个链接将为您提供所有您需要了解的BMP格式,数据结构和示例代码,而无需加载任何库依赖:
http://paulbourke.net/dataformats/bmp/
它还包含用于在开放式gl纹理中查看加载的BMP的代码,因此几乎所有您需要的...
答案 2 :(得分:1)
Chris Backhouse制作了一个功能强大的小型BMP加载器(着眼于将它们用作OpenGL纹理)。它是C ++,而不是C,他承认它不是跨平台的。但是,它很小且易于理解,所以我想我会在这里添加链接:
答案 3 :(得分:1)
您需要一些外部库来执行此操作(我建议ImageMagick)。 ImageMagick网站还包括文档和示例。
答案 4 :(得分:1)
查看英特尔开发的OpenCV库。
答案 5 :(得分:0)
如果您与BMP文件格式绑定,那么自己查看标题并获取像素非常简单。 See this google search。其中一个更有趣的比赛是here。最直观的部分是每行像素都是4字节对齐的。另外,请注意压缩的BMP ......(我的经验是许多第三方工具在压缩BMP方面遇到问题,因此您遇到的某些库也可能会......)
如果您不依赖于BMP文件格式,我建议使用libpng。 manual提供了一些非常清晰的示例代码。
答案 6 :(得分:0)
正如其他人所说,你可能想要使用像SDL这样的外部库。如果你想学习一些东西并自己动手做,请参阅我对这个非常相似的问题的答案:Getting RGB values for each pixel from a 24bpp Bitmap for conversion to GBA format in C你会找到打印出每个像素的C代码,并查看关于bmp文件的维基百科页面,因为它非常好。