From 7a15a15e50d720fea97094b6f799ae10130ff4f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 12:46:08 +0100 Subject: [PATCH] fix: set image format before calling write() in ImageMagick MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The correct API pattern is: 1. Set image.format = outputFormatEnum first 2. Then call image.write(callback) with the format already set This ensures the image is written in the correct format with proper headers (RIFF for WebP, etc.) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- lib/converters/imagemagickService.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/converters/imagemagickService.ts b/lib/converters/imagemagickService.ts index 37af482..0462199 100644 --- a/lib/converters/imagemagickService.ts +++ b/lib/converters/imagemagickService.ts @@ -39,6 +39,9 @@ export async function convertWithImageMagick( let result: Uint8Array | undefined; await ImageMagick.read(inputData, (image) => { + // Set output format + image.format = outputFormatEnum; + // Apply quality setting if specified if (options.imageQuality !== undefined) { image.quality = options.imageQuality; @@ -65,8 +68,10 @@ export async function convertWithImageMagick( if (onProgress) onProgress(70); - // Write the image data with the specified format - result = image.write(outputFormatEnum); + // Write the image data in the specified format + image.write((data) => { + result = data; + }); if (onProgress) onProgress(90); });