From 4702ca610c84818a90cf0d6aa73a6711285b8a5b Mon Sep 17 00:00:00 2001 From: TazyFoundSoup Date: Mon, 26 Jan 2026 20:47:57 +1100 Subject: feat(png): Add small BpP helper function for ff_png_ctx --- include/tinyff/image/png.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'include/tinyff/image/png.h') diff --git a/include/tinyff/image/png.h b/include/tinyff/image/png.h index c195951..c2c7db2 100644 --- a/include/tinyff/image/png.h +++ b/include/tinyff/image/png.h @@ -55,6 +55,27 @@ typedef struct { } ff_png_ctx; +// Small BpP helper function + +static inline uint16_t ff_png_bpp(ff_png_ctx *ctx) +{ + int16_t byte_depth = ctx->bit_depth / 8; + switch (ctx->color_type) { + case 0: // Grayscale + return byte_depth * 1; // Gray + case 2: // Truecolor + return byte_depth * 3; // R, G, B + case 3: // Indexed-color + return byte_depth * 1; // Index + case 4: // Grayscale with alpha + return byte_depth * 2; // Gray w/ alpha + case 6: // Truecolor with alpha + return byte_depth * 4; // R, G, B w/ alpha + default: + return 0; // damn, you corrupt + } +} + // Chunk handling -- cgit v1.2.3