#pragma once #include #include namespace fgc { // Thin wrapper around libjxl for encoding an 8-bit interleaved image buffer // to a JPEG XL file. Replaces the header-only JPEG_XL.h class. class JpegXlEncoder { public: // Encode `img` (width*height*channels bytes, 8-bit, 1 or 3 channels) to // `path`. `distance` is the JPEG XL frame distance (0 = lossless, higher = // lossier); `effort` is the libjxl effort level. Returns true on success. static bool encodeToFile(const std::string& path, const uint8_t* img, int width, int height, int channels, float distance, int effort, int threads = 3); }; } // namespace fgc