#pragma once #include #include "PixelRenderer.hpp" namespace massivedynamic { class PNGRenderer final: public PixelRenderer { public: PNGRenderer(const std::vector& pixels, size_t sourceSize, size_t targetSize) : PixelRenderer(pixels, sourceSize, targetSize) {} virtual void render(const std::string& filename) override { this->generateBuffer(); stbi_write_png((filename + ".png").c_str(), targetSize, targetSize, 4, this->bitmap.data(), sizeof(Color) * targetSize); } }; }