From c756498cfe767872be880162305e53dc37080754 Mon Sep 17 00:00:00 2001 From: Oldes Date: Tue, 29 Jun 2021 18:32:27 +0200 Subject: [PATCH] FEAT: new `blur` native function for fast Gaussian blur of images Based on Ivan Kuckir's Fastest Gaussian blur implementation algorithm from article: http://blog.ivank.net/fastest-gaussian-blur.html Usage example: ``` image: load %some-image.jpg blur image 15 ;@@ image is modified! save %blured-image.png image ``` --- make/rebol3.nest | 3 +- src/core/n-image.c | 22 +++- src/core/u-image-blur.c | 203 +++++++++++++++++++++++++++++++ src/include/sys-blur.h | 6 + src/tests/units/files/flower.png | Bin 0 -> 49623 bytes src/tests/units/image-test.r3 | 27 ++++ 6 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 src/core/u-image-blur.c create mode 100644 src/include/sys-blur.h create mode 100644 src/tests/units/files/flower.png diff --git a/make/rebol3.nest b/make/rebol3.nest index 22ebd9075a..bd8d918cae 100644 --- a/make/rebol3.nest +++ b/make/rebol3.nest @@ -313,11 +313,12 @@ config: [ ;- this is list of configuration (optional) defines ;- image related natives and codecs: include-image-natives: [ ; image related native functions like: - ; `hsv-to-rgb`, `rgb-to-hsv`, `tint`, `resize`, `premultiply` + ; `hsv-to-rgb`, `rgb-to-hsv`, `tint`, `resize`, `premultiply`, `blur` ; on Windows also: `image` as common entry to os image codec (if enabled) config: INCLUDE_IMAGE_NATIVES core-files: %core/n-image.c core-files: %core/u-image-resize.c + core-files: %core/u-image-blur.c ] include-native-bmp-codec: [config: INCLUDE_BMP_CODEC core-files: %core/u-bmp.c] diff --git a/src/core/n-image.c b/src/core/n-image.c index aa3f98985f..be7bd070e5 100644 --- a/src/core/n-image.c +++ b/src/core/n-image.c @@ -3,7 +3,7 @@ ** REBOL [R3] Language Interpreter and Run-time Environment ** ** Copyright 2012 REBOL Technologies -** Copyright 2012-2019 Rebol Open Source Contributors +** Copyright 2012-2021 Rebol Open Source Contributors ** REBOL is a trademark of REBOL Technologies ** ** Licensed under the Apache License, Version 2.0 (the "License"); @@ -34,6 +34,7 @@ #include "reb-codec.h" #include "sys-magick.h" // used for `resize` native +#include "sys-blur.h" // used for `blur` native #if defined(TO_WINDOWS) && defined(INCLUDE_IMAGE_OS_CODEC) #include "winerror.h" // used for WINCODEC_ERR_COMPONENTNOTFOUND #endif @@ -339,6 +340,25 @@ typedef struct REBCLR { return R_ARG1; } +/*********************************************************************** +** +*/ REBNATIVE(blur) +/* +// blur: native [ +// "Blur (Gaussian) given image" +// image [image!] "Image to blur (modified)" +// radius [number!] "Blur amount" +// ] +***********************************************************************/ +{ + REBVAL* val_img = D_ARG(1); + REBVAL* val_rad = D_ARG(2); + REBINT radius = IS_INTEGER(val_rad) ? VAL_INT32(val_rad) : (REBINT)round(VAL_DECIMAL(val_rad)); + + BlurImage(VAL_SERIES(val_img), radius); + return R_ARG1; +} + /*********************************************************************** ** */ REBNATIVE(image) diff --git a/src/core/u-image-blur.c b/src/core/u-image-blur.c new file mode 100644 index 0000000000..46dbc3ead1 --- /dev/null +++ b/src/core/u-image-blur.c @@ -0,0 +1,203 @@ +/*********************************************************************** +** +** REBOL [R3] Language Interpreter and Run-time Environment +** +** Copyright 2012 REBOL Technologies +** Copyright 2012-2021 Rebol Open Source Developers +** REBOL is a trademark of REBOL Technologies +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +** +************************************************************************ +** +** Module: u-image-blur.c +** Summary: image blur +** Section: utility +** Author: Oldes +** +** Note: +** Based on Ivan Kuckir's Fastest Gaussian blur implementation algorithm +** from article: http://blog.ivank.net/fastest-gaussian-blur.html and +** SilverWin's C port of it: https://github.com/SilverWin/blur_lib +** +***********************************************************************/ + +#include "sys-core.h" + +#ifdef INCLUDE_IMAGE_NATIVES +#include "sys-blur.h" + +static void boxes_for_gauss(REBDEC sigma, REBINT sizes[3]) +{ + REBDEC wIdeal; + REBINT wl; + REBINT wu; + REBDEC mIdeal; + REBINT m; + REBINT n = 3; + + wIdeal = sqrt((REBDEC)(12 * sigma * sigma / n) + 1); /* Ideal averaging filter width */ + wl = (REBINT)floor(wIdeal); + if (wl % 2 == 0) + wl--; + wu = wl + 2; + + mIdeal = (12 * sigma * sigma - (REBDEC)wl * wl * n - 4.0 * n * wl - 3.0 * n) / (-4.0 * wl - 4); + m = (REBINT)round(mIdeal); + + for (REBINT i = 0; i < n; i++) + { + if (i < m) + { + sizes[i] = wl; + } + else + { + sizes[i] = wu; + } + } +} + +static void box_blur_H(REBYTE *scl, REBYTE*tcl, REBINT w, REBINT h, REBINT r, REBINT bpp) +{ + for (REBINT i = 0; i < h; i++) + { + for (REBINT k = 0; k < bpp; k++) + { + REBINT ti = i * w * bpp + k; + REBINT li = ti; + REBINT ri = ti + r * bpp; + REBINT fv = scl[li]; + REBINT lv = scl[ti + (w - 1) * bpp]; + REBINT val = (r + 1) * fv; + for (REBINT j = 0; j < r; j++) + { + val += scl[ti + (j * bpp)]; + } + for (REBINT j = 0; j <= r; j++) + { + val += scl[ri] - fv; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + ri += bpp; + ti += bpp; + } + for (REBINT j = r + 1; j < (w - r); j++) + { + val += scl[ri] - scl[li]; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + li += bpp; + ri += bpp; + ti += bpp; + } + for (REBINT j = w - r; j < w; j++) + { + val += lv - scl[li]; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + li += bpp; + ti += bpp; + } + } + } +} + +static void box_blur_T(REBYTE*scl, REBYTE*tcl, REBINT w, REBINT h, REBINT r, REBINT bpp) +{ + REBINT i, j, k, ti, li, ri, fv, lv, val; + for (i = 0; i < w; i++) + { + for (k = 0; k < bpp; k++) + { + ti = i * bpp + k; + li = ti; + ri = ti + r * w * bpp; + fv = scl[ti]; + lv = scl[ti + w * (h - 1) * bpp]; + val = (r + 1) * fv; + for (j = 0; j < r; j++) + { + val += scl[ti + j * w * bpp]; + } + for (j = 0; j <= r; j++) + { + val += scl[ri] - fv; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + ri += w * bpp; + ti += w * bpp; + } + for (j = r + 1; j < (h - r); j++) + { + val += scl[ri] - scl[li]; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + li += w * bpp; + ri += w * bpp; + ti += w * bpp; + } + for (j = h - r; j < h; j++) + { + val += lv - scl[li]; + tcl[ti] = (REBYTE)round(val / (r + r + 1)); + li += w * bpp; + ti += w * bpp; + } + } + } +} + +static void box_blur(REBYTE*scl, REBYTE*tcl, REBINT w, REBINT h, REBINT r, REBINT bpp) +{ + for (REBINT i = 0; i < (h * w * bpp); i++) + { + tcl[i] = scl[i]; + } + box_blur_H(tcl, scl, w, h, r, bpp); + box_blur_T(scl, tcl, w, h, r, bpp); +} + +void fast_gauss_blur(REBYTE*scl, REBYTE*tcl, REBINT w, REBINT h, REBINT r, REBINT bpp) +{ + REBINT bxs[3]; + boxes_for_gauss(r, bxs); + box_blur(scl, tcl, w, h, (bxs[0] - 1) / 2, bpp); + box_blur(tcl, scl, w, h, (bxs[1] - 1) / 2, bpp); + box_blur(scl, tcl, w, h, (bxs[2] - 1) / 2, bpp); + // result would be in tcl, so copy it back to source, as it is modified anyway + for (REBINT i = 0; i < (h * w * bpp); i++) + { + scl[i] = tcl[i]; + } +} + +void BlurImage(REBSER *image, REBINT radius) +{ + REBSER *temp_image; + + // Validate input. + if ( image == NULL + || (IMG_WIDE(image) == 0UL) + || (IMG_HIGH(image) == 0UL) + || radius <= 0 + ) return; + + radius = MIN(radius, IMG_WIDE(image) / 2); + radius = MIN(radius, IMG_HIGH(image) / 2); + + // Prepare temporary image. + + temp_image = Make_Image(IMG_WIDE(image), IMG_HIGH(image), TRUE); + + // Resize image. + + fast_gauss_blur(IMG_DATA(image), IMG_DATA(temp_image), IMG_WIDE(image), IMG_HIGH(image), radius, 4); +} + +#endif // INCLUDE_IMAGE_NATIVES \ No newline at end of file diff --git a/src/include/sys-blur.h b/src/include/sys-blur.h new file mode 100644 index 0000000000..5eaedb4eac --- /dev/null +++ b/src/include/sys-blur.h @@ -0,0 +1,6 @@ +#ifndef __INCLUDE_BLUR_H__ +#define __INCLUDE_BLUR_H__ + +void BlurImage(REBSER *image, REBINT radius); + +#endif diff --git a/src/tests/units/files/flower.png b/src/tests/units/files/flower.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc9295be54f5cb978ce3a96f5bb98ce0aa1eeb9 GIT binary patch literal 49623 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