我想知道如何在C和C之间导入和导出位图。我基本上不知道从哪里开始。
答案 0 :(得分:2)
您是否看过ImageMagick的C API包装器MagickWand?如果您想仔细阅读,请 Here's 文档。
答案 1 :(得分:2)
内存中的位图看起来与此类似:
struct Image {
int width;
int height;
char *data; // 1 byte per channel & only 1 channel == grayscale
}
struct Image theImage;
theImage.width = 100;
theImage.height = 100;
theImage.data = malloc(sizeof(char) * theImage.width * theImage.height);
至于导入和导出,有一些非常简单的文件格式,请看BMP。对于更复杂的格式,最好使用已有的库。
大多数框架已经为最常见的文件格式提供了加载/保存方法。如果您正在寻找轻量级库,可以查看SDL。
答案 2 :(得分:1)
答案 3 :(得分:1)
简单的答案是使用适当的库。适合的库取决于您使用的平台。在GUI平台上,GUI API / Framework将包含这些功能。
答案 4 :(得分:1)
我喜欢netpbm / pbmplus工具,虽然我通常喜欢命令行; API很有效但使用起来并不是很有趣。
这个学期我写了大量软件,供初学者用来操作图像;您可能想查看Tufts课程Machine Structure and Assembly-Language Programming的家庭作业和支持软件。
答案 5 :(得分:0)
术语“位图”有些通用,除非您具体指Windows BMP。
我建议在您的平台上使用图像处理库(例如gd)。一个好的图形库具有用各种格式的图像进行输入和输出的例程。
答案 6 :(得分:0)
FreeImage很棒。我已经将它用于我自己的游戏开发工作,它支持大量的格式。以下是支持的功能和格式列表 - http://freeimage.sourceforge.net/features.html