From f60872496888deb81e9f82cf93173499a4af6f28 Mon Sep 17 00:00:00 2001 From: Kibi Kelburton Date: Mon, 11 May 2026 08:50:28 +0200 Subject: [PATCH] Closing #5 : preserving transparency in images while converting them to webp --- src/avatar_handler.mjs | 2 +- src/hall_image_handler.mjs | 2 +- src/user_hall_image_handler.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/avatar_handler.mjs b/src/avatar_handler.mjs index 01fa5a0..76855ee 100644 --- a/src/avatar_handler.mjs +++ b/src/avatar_handler.mjs @@ -137,7 +137,7 @@ export const handleAvatarUpload = async (req, res) => { // Convert to webp using ImageMagick with coalesce for GIF handling try { - await execFile('magick', [tmpPath, '-coalesce', '-resize', '256x256^', '-gravity', 'center', '-extent', '256x256', '-quality', '50', finalPath]); + await execFile('magick', [tmpPath, '-coalesce', '-resize', '256x256^', '-gravity', 'center', '-background', 'none', '-extent', '256x256', '-quality', '50', finalPath]); } catch (err) { console.error('[AVATAR HANDLER] Magick error:', err); await fs.unlink(tmpPath).catch(() => { }); diff --git a/src/hall_image_handler.mjs b/src/hall_image_handler.mjs index 377c63f..9e61c7f 100644 --- a/src/hall_image_handler.mjs +++ b/src/hall_image_handler.mjs @@ -101,7 +101,7 @@ export const handleHallImageUpload = async (req, res) => { // -coalesce is required for animated GIFs: it composites delta frames into full frames // before resizing, preventing heavy artifacts. Output is animated WebP for GIFs. try { - await execFile('magick', [tmpPath, '-coalesce', '-resize', '600x300^', '-gravity', 'center', '-extent', '600x300', '-quality', '85', finalPath]); + await execFile('magick', [tmpPath, '-coalesce', '-resize', '600x300^', '-gravity', 'center', '-background', 'none', '-extent', '600x300', '-quality', '85', finalPath]); } catch (err) { console.error('[HALL IMG] Magick error:', err.stderr || err.message); await fs.unlink(tmpPath).catch(() => {}); diff --git a/src/user_hall_image_handler.mjs b/src/user_hall_image_handler.mjs index 0e9b807..4892e3d 100644 --- a/src/user_hall_image_handler.mjs +++ b/src/user_hall_image_handler.mjs @@ -97,7 +97,7 @@ export const handleUserHallImageUpload = async (req, res, slug) => { // Resize to 600x300 webp try { - await execFile('magick', [tmpPath, '-coalesce', '-resize', '600x300^', '-gravity', 'center', '-extent', '600x300', '-quality', '85', finalPath]); + await execFile('magick', [tmpPath, '-coalesce', '-resize', '600x300^', '-gravity', 'center', '-background', 'none', '-extent', '600x300', '-quality', '85', finalPath]); } catch (err) { console.error('[USER_HALL_IMG] Magick error:', err.stderr || err.message); await fs.unlink(tmpPath).catch(() => {});