PizzaPNG

PizzaPNG — библиотека на языке C++ для простой генерации файлов изображений в формате PNG в программах для Windows. Лицензия: MIT.

Особенности

  • Простой программный интерфейс (API).
  • Нет зависимостей. libpng не требуется.
  • Автоматически удаляются ненужные метасекции, которые добавляет GDI+.
  • Поддерживается вставка произвольных двоичных секций.

Ограничения

  • Только для Windows, т. к. используется GDI+.
  • Поддерживаются только 24- и 32-битные (24 бит с прозрачностью) PNG-файлы.

Пример

Программа ниже генерирует зелёное изображение размером 123×42 с полу­прозрач­ностью 50% и сохраняет его как файл с именем example.png.

#include <cstdint>
#include <fstream>
#include <string>

#include "pizza-png/Image.h"

using std::ios;

int main() {
    uint16_t width  = 123,
             height = 42;

    size_t pixelCount = width * height;

    MaratTanalin::PizzaPNG::Image image(width, height);

    for (size_t i = 0; i < pixelCount; i++) {
        image.addPixel(0, 255, 0, 127);
    }

    std::string pngData = image;

    std::ofstream fs("example.png", ios::out | ios::binary | ios::trunc);
    fs.write(pngData.c_str(), pngData.size());
    fs.close();
}