From 1759f593fcc545cf1b5efb751c4a03b434da66a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20R=2E=20Pietraszczyk?= Date: Mon, 2 Nov 2026 00:13:33 +0100 Subject: 2.261101-3 --- script-fu/3.x/przem-retro-portrait-v3x.scm | 24 +++++++++++++++--------- script-fu/changelog.md | 3 +++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/script-fu/3.x/przem-retro-portrait-v3x.scm b/script-fu/3.x/przem-retro-portrait-v3x.scm index 51467dc..772c740 100644 --- a/script-fu/3.x/przem-retro-portrait-v3x.scm +++ b/script-fu/3.x/przem-retro-portrait-v3x.scm @@ -2,7 +2,7 @@ ; author: PRP ; licencja: Public Domain ; Gdańsk - 01-11-2026 -; ver. 2.261101-2 +; ver. 2.261101-3 (define (midtones val) (/ val 2.55)) @@ -26,7 +26,7 @@ (midtones (bval c1))))) -(define ( przem-retro-portrait-v3x image drawable brightness saturation palette black hue) +(define ( przem-retro-portrait-v3x image drawable brightness contrast saturation palette black hue dithering) (let* ( (layer (vector-ref drawable 0)) @@ -51,7 +51,7 @@ (gimp-image-convert-rgb image)) ;; Dodaj ciepłe kolory przez saturację i odcień - (gimp-drawable-brightness-contrast layer (/ brightness 100) 0) + ;(gimp-drawable-brightness-contrast layer (/ brightness 100) 0) ; Odcień 30 = ciepłe kolory (gimp-drawable-hue-saturation layer HUE-RANGE-ALL 0 0 (/ saturation 100) 30) @@ -89,7 +89,7 @@ ; 6. Usuwanie nieużywanych kolorów z finalnej palety: TRUE lub FALSE ; 7. Nazwa niestandardowej palety (używane tylko gdy typ palety to 2, w innych przypadkach dowolny string np. "") - (gimp-image-convert-indexed image 1 0 hue FALSE FALSE "") + (gimp-image-convert-indexed image dithering 0 hue FALSE FALSE "") (gimp-image-convert-rgb image) (gimp-layer-set-mode layer 0) ; NORMAL mode @@ -99,17 +99,21 @@ (gimp-image-insert-layer image blur-layer 0 -1) (gimp-image-insert-layer image color-layer 0 -1) - (gimp-drawable-merge-new-filter blur-layer "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 0.45 "std-dev-x" 10.0 "std-dev-y" 10.0 "filter" "auto") + (gimp-drawable-merge-new-filter blur-layer "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 0.90 "std-dev-x" 10.0 "std-dev-y" 10.0 "filter" "auto") (gimp-layer-set-mode blur-layer LAYER-MODE-NORMAL) ; NORMAL mode - (gimp-image-merge-down image blur-layer EXPAND-AS-NECESSARY) + ;(gimp-image-merge-down image blur-layer EXPAND-AS-NECESSARY) ;# W GIMP 3.0 używamy operacji GEGL przez PDB dla uzyskania ziarna - (gimp-drawable-merge-new-filter layer "gegl:noise-rgb" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 0.85 "red" 0.05 "green" 0.05 "blue" 0.05 "alpha" 0.0 "seed" 0) + (gimp-drawable-merge-new-filter layer "gegl:noise-rgb" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 0.80 "red" 0.05 "green" 0.05 "blue" 0.05 "alpha" 0.0 "seed" 0) + + (gimp-drawable-merge-new-filter layer "gimp:brightness-contrast" 0 LAYER-MODE-REPLACE 0.80 + "brightness" (/ brightness 100) + "contrast" (/ contrast 100)) ;# Delikatne przesunięcie kolorów w stronę żółci/czerwieni w cieniach i półtonach (color-balance color-layer) (gimp-layer-set-mode color-layer LAYER-MODE-NORMAL) ; NORMAL mode - (gimp-layer-set-opacity color-layer 80) + (gimp-layer-set-opacity color-layer 75) (gimp-image-undo-group-end image) @@ -127,10 +131,12 @@ "RGB* GRAY*" SF-ONE-OR-MORE-DRAWABLE SF-ADJUSTMENT "Brightness" '(0 -100 100 1 10 0 0) - SF-ADJUSTMENT "Saturation" '(0 -100 100 1 10 0 0) + SF-ADJUSTMENT "Contrast" '(0 -100 100 1 10 0 0) + SF-ADJUSTMENT "Saturation" '(0 -100 100 1 10 0 0) SF-PALETTE _"Palette" "Default" SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) SF-ADJUSTMENT "Hue" '(2 2 16 1 10 0 0) + SF-OPTION "Dithering" '("None" "Floyd-Steinberg (normal)" "Floyd-Steinberg (reduced bluff)" "Position") ) (script-fu-menu-register "przem-retro-portrait-v3x" diff --git a/script-fu/changelog.md b/script-fu/changelog.md index 9469a89..8ab6c32 100644 --- a/script-fu/changelog.md +++ b/script-fu/changelog.md @@ -1,3 +1,6 @@ +# [2.261101-2] przem-retro-portrait-v3x.scm +* Obsługa ditheringu + # [2.261101-2] przem-retro-portrait-v3x.scm * Przebudowa filtra - na podstawie przem-warm-grayscale.scm -- cgit v1.2.3