From 6e2d3fe0dfa56fece7c23043f17d8dc2d75ae91f Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 15 Mar 2023 11:00:56 +0100 Subject: [PATCH] LibGfx: Add PNGChunk::compress_and_add API --- Userland/Libraries/LibGfx/PNGWriter.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGfx/PNGWriter.cpp b/Userland/Libraries/LibGfx/PNGWriter.cpp index 156347e601..985ff9f1cb 100644 --- a/Userland/Libraries/LibGfx/PNGWriter.cpp +++ b/Userland/Libraries/LibGfx/PNGWriter.cpp @@ -36,6 +36,7 @@ public: ErrorOr add_u8(u8); + ErrorOr compress_and_add(ReadonlyBytes); ErrorOr add(ReadonlyBytes); ErrorOr store_type(); @@ -83,6 +84,11 @@ ErrorOr PNGChunk::add(T data) return {}; } +ErrorOr PNGChunk::compress_and_add(ReadonlyBytes uncompressed_bytes) +{ + return add(TRY(Compress::ZlibCompressor::compress_all(uncompressed_bytes, Compress::ZlibCompressionLevel::Best))); +} + ErrorOr PNGChunk::add(ReadonlyBytes bytes) { TRY(m_data.try_append(bytes)); @@ -262,9 +268,7 @@ ErrorOr PNGWriter::add_IDAT_chunk(Gfx::Bitmap const& bitmap) TRY(uncompressed_block_data.try_append(best_filter.buffer)); } - auto zlib_buffer = TRY(Compress::ZlibCompressor::compress_all(uncompressed_block_data, Compress::ZlibCompressionLevel::Best)); - - TRY(png_chunk.add(zlib_buffer)); + TRY(png_chunk.compress_and_add(uncompressed_block_data)); TRY(add_chunk(png_chunk)); return {}; }