From a6d5e4a243e7b60197343f24d4752f66ca371eb6 Mon Sep 17 00:00:00 2001 From: Francois Nedelec Date: Mon, 21 Mar 2022 13:15:26 +0000 Subject: [PATCH] Added option to flip image on encode --- spng/spng.c | 6 +++++- spng/spng.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spng/spng.c b/spng/spng.c index 277e5957..d28f9356 100644 --- a/spng/spng.c +++ b/spng/spng.c @@ -4863,7 +4863,11 @@ int spng_encode_image(spng_ctx *ctx, const void *img, size_t len, int fmt, int f do { - size_t ioffset = ri->row_num * ctx->image_width; + size_t ioffset; + if ( flags & SPNG_ENCODE_FLIP_Y ) + ioffset = ( ihdr->height - ri->row_num - 1 ) * ctx->image_width; + else + ioffset = ri->row_num * ctx->image_width; ret = encode_row(ctx, (unsigned char*)img + ioffset, ctx->image_width); diff --git a/spng/spng.h b/spng/spng.h index 5937d6c1..b564acae 100644 --- a/spng/spng.h +++ b/spng/spng.h @@ -216,6 +216,7 @@ enum spng_encode_flags { SPNG_ENCODE_PROGRESSIVE = 1, /* Initialize for progressive writes */ SPNG_ENCODE_FINALIZE = 2, /* Finalize PNG after encoding image */ + SPNG_ENCODE_FLIP_Y = 4, /* Flip image vertically */ }; struct spng_ihdr