#pragma once

#include <memory>
#include <string>

class Image;
class PngWriterImpl;

class PngWriter
{
public:
    PngWriter();

    static std::unique_ptr<PngWriter> Create();

    void SetPath(const std::string& path);

    void Write(const std::unique_ptr<Image>& image) const;

private:
    std::unique_ptr<PngWriterImpl> mImpl;

};

using PngWriterPtr = std::unique_ptr<PngWriter>;
