fix: make imagick sanitize result stable

This commit is contained in:
Steven Qiu 2025-07-27 03:34:35 +08:00 committed by GitHub
parent 33d805ee82
commit 1b3b020d52
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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]);