#include #include #include #define REPORT_WIDTH 1000 #define REPORT_HEIGHT 1200 #define REPORT_HEIGHT_OFFSET 200 #define REPORT_TEXT_START_X 40 #define REPORT_TEXT_JUMP_Y 120 #define REPORT_TEXT_FONT_SIZE 120.0 #define REPORT_TEXT_LENGTH 26 #define REPORT_RESOURCE_BUMPER_PATH "./assets/report_bumper.png" #define CAIRO_TEXT_WHITE 0.87, 0.87, 0.87 std::string GenerateReportImage(cairo_surface_t *background, std::string headline); // File type management cairo_status_t cairoReadPNGdata(void *closure, unsigned char *data, unsigned int length); cairo_status_t cairoOutputAsPNGStream(void *closure, const unsigned char *data, unsigned int length); cairo_surface_t *pngToCairoSurface(const std::string &data); cairo_surface_t *jpegToCairoSurface(std::string data); cairo_surface_t *webpToCairoSurface(std::string data); extern std::unordered_map> supportedImageFileTypes;