0

很长时间以来,我一直在努力为 C++ 中的学生设计简单的位图问题。问题是那些不容易使用的库。stbi,一个只包含的库完全解决了这个问题,现在学生可以轻松加载和保存图像,让我专注于给他们解决在位图类中创建各种图像的问题,然后通过简单的调用将其写出来。

https://github.com/nothings/stb

但是,我想对涉及 ARM 汇编程序的微处理器类做同样的事情,我想要一个每像素 1 位的位图,最好是 png。我找不到写出这种类型的 png 的示例。有谁知道怎么做,最好使用 stbi 或使用其他库在 windows、mac 和 linux 之间简单便携?

以下将对每像素 4 个字节的 png 执行此操作。我想要每像素 1 位。

stbi_write_png("testpng_4.png", width, height, CHANNEL_NUM, pixels, width*CHANNEL_NUM);

或者,我发现在 libpng++ 中有一个比 libpng 更简洁的 API。

constexpr int W = 128, H = 128;
png::image< png::index_pixel > image(W,H);
png::palette pal(2);
pal[0] = png::color(0,0,0);
pal[1] = png::color(255,0,0);
image.set_palette(pal);

谁能告诉我如何让图像的地址与原始位一起使用?C++ API 提供方括号,我挖了一点,但找不到任何我可以获取地址的东西。

4

0 回答 0