你需要做两件不同的事情:
- 在内存中生成代表您的字符串的图像
- 将该图像存储到文件中
两者都可以在没有外部库的情况下完成(使用简单的预定义字符模式并存储为简单格式,例如 BMP)。
但请注意,使用高级图像绘制库(例如 OpenCV 或 ImageMagick)会容易得多。
首先要做的是定义一个数据结构来存储你的图像,如下所示:
struct Image {
int height, width;
unsigned char* pixels;
};
然后您必须生成函数来分配图像、释放图像以及将图像复制到另一个图像中。
为了在您的图像上打印您的角色,您必须创建如下预定义的图案:
char patternA[] = {
0x00, 0x00, 0xff, 0x00, 0x00
0x00, 0xff, 0x00, 0xff, 0x00
0x00, 0xff, 0x00, 0xff, 0x00
0x00, 0xff, 0xff, 0xff, 0x00
0x00, 0xff, 0x00, 0xff, 0x00
0x00, 0xff, 0x00, 0xff, 0x00
0x00, 0xff, 0x00, 0xff, 0x00
};
Image imageOfA;
imageOfA.width = 5;
imageOfA.height= 7;
imageOfA.pixels= patternA;
您还可以从图像文件中读取这些模式,甚至更好地从字体文件中读取这些模式(但如果没有外部库,您需要自己实现文件读取器)。
一旦你有了你的字符模式,你就可以结合这些预定义的图像来创建一个与你的输入字符串对应的新图像。
最后,您必须将图像结构写入文件。为此,您可以使用低级库(例如 libjpeg 或 libpng),也可以使用简单的文件格式(例如 BMP)自行实现。
结论是你真的想要使用第三方库来实现你想要的。