diff --git a/src/MessageHandler/RenderImageMessageHandler.php b/src/MessageHandler/RenderImageMessageHandler.php index 5c41a69..7927c3f 100644 --- a/src/MessageHandler/RenderImageMessageHandler.php +++ b/src/MessageHandler/RenderImageMessageHandler.php @@ -46,8 +46,14 @@ final class RenderImageMessageHandler /** sharpenImage(radius=0, SHARPEN_SIGMA). Baseline: 0.8 (light). */ private const SHARPEN_SIGMA = 0.8; - /** Imagick dither method. Baseline: DITHERMETHOD_FLOYDSTEINBERG. */ - private const DITHER_METHOD = \Imagick::DITHERMETHOD_FLOYDSTEINBERG; + /** Imagick dither method. + * Baseline: DITHERMETHOD_FLOYDSTEINBERG — error diffuses down-right + * in row order, so a blue sky's residual error + * accumulates downward and "flushes" into faces/hair + * below, contaminating skin tones with blue. + * Experiment #2: DITHERMETHOD_RIEMERSMA — Hilbert-curve scan, error + * stays local and doesn't bias along any axis. */ + private const DITHER_METHOD = \Imagick::DITHERMETHOD_RIEMERSMA; public function __construct( private readonly ImageRepository $imageRepo,