From 6581dd6ff9ac17decf4b0847c2ac788bef64f01d Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Sun, 9 Nov 2025 17:33:04 +0100 Subject: [PATCH] add blur option --- wled00/FX.cpp | 2 +- wled00/image_loader.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/wled00/FX.cpp b/wled00/FX.cpp index f0f4276f..a6ce48a8 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -4509,7 +4509,7 @@ uint16_t mode_image(void) { // Serial.println(status); // } } -static const char _data_FX_MODE_IMAGE[] PROGMEM = "Image@!,;;;12;sx=128"; +static const char _data_FX_MODE_IMAGE[] PROGMEM = "Image@!,Blur,;;;12;sx=128,ix=0"; /* Blends random colors across palette diff --git a/wled00/image_loader.cpp b/wled00/image_loader.cpp index 5e5a0f7c..2ab71a34 100644 --- a/wled00/image_loader.cpp +++ b/wled00/image_loader.cpp @@ -56,7 +56,16 @@ void screenClearCallback(void) { activeSeg->fill(0); } -void updateScreenCallback(void) {} +// this callback runs when the decoder has finished painting all pixels +void updateScreenCallback(void) { + // perfect time for adding blur + if (activeSeg->intensity > 1) { + uint8_t blurAmount = activeSeg->intensity >> 2; + if ((blurAmount < 24) && (activeSeg->is2D())) activeSeg->blurRows(activeSeg->intensity >> 1); // some blur - fast + else activeSeg->blur(blurAmount); // more blur - slower + } + lastCoordinate = -1; // invalidate last position +} // note: GifDecoder drawing is done top right to bottom left, line by line