From 1b3b020d52fda5f1c3c15391a9d4ee2dbc352a21 Mon Sep 17 00:00:00 2001 From: Steven Qiu Date: Sun, 27 Jul 2025 03:34:35 +0800 Subject: [PATCH] fix: make imagick sanitize result stable --- app/Http/Controllers/SkinlibController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/SkinlibController.php b/app/Http/Controllers/SkinlibController.php index 2897491f..268c61d6 100644 --- a/app/Http/Controllers/SkinlibController.php +++ b/app/Http/Controllers/SkinlibController.php @@ -265,7 +265,13 @@ class SkinlibController extends Controller } $image = Image::make($file); - $sanitized = $image->encode('png', 100)->getEncoded(); + $imagick = $image->getCore(); + $imagick->setOption('png:compression-filter', '0'); + $imagick->setOption('png:compression-level', '9'); + $imagick->setOption('png:compression-strategy', '0'); + $imagick->setOption('png:exclude-chunk', 'all'); + $imagick->stripImage(); + $sanitized = $image->encode('png')->getEncoded(); $hash = hash('sha256', $image->encoded); $hash = $filter->apply('uploaded_texture_hash', $hash, [$image]);