From a65f99a64e1937411a9268213c55f1b030df7af5 Mon Sep 17 00:00:00 2001 From: Garden Date: Thu, 18 Dec 2025 21:14:42 +1100 Subject: feat(png): Validate signiture header --- include/tinyff/image/png.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 include/tinyff/image/png.h (limited to 'include/tinyff/image/png.h') diff --git a/include/tinyff/image/png.h b/include/tinyff/image/png.h new file mode 100644 index 0000000..caed675 --- /dev/null +++ b/include/tinyff/image/png.h @@ -0,0 +1,29 @@ +#ifndef PNG_H +#define PNG_H + +#include +#include +#include +#include + +#include "tinyff/result.h" + +static const unsigned char PNG_SIGNATURE[8] = { + 0x89, 'P', 'N', 'G', 0x0D, 0x0A, 0x1A, 0x0A +}; + +typedef struct { + FILE *raw; + uint32_t width; + uint32_t height; + uint8_t bit_depth; + uint8_t color_type; + uint8_t *pixels; + size_t count_pixels; + bool valid; +} ff_png_ctx; + +ff_result ff_png_isvalid(FILE *file); +ff_png_ctx *ff_open_png(const char *filepath); + +#endif -- cgit v1.2.3