diff options
| author | Przemysław R. Pietraszczyk <przem@prymula.ct8.pl> | 2026-10-23 23:22:26 +0200 |
|---|---|---|
| committer | Przemysław R. Pietraszczyk <przem@prymula.ct8.pl> | 2026-10-23 23:22:26 +0200 |
| commit | c836342e9630432e1b59a13cde4ddf717cc96bda (patch) | |
| tree | 569d3f718ae1448c8c6c595e72a29fa3d5e93d6d | |
| parent | aca4f63275beb4a14c5f5f1b56160630682d7651 (diff) | |
2.261023-0:przem-warm-grayscale-v3x.scm
| -rw-r--r--[-rwxr-xr-x] | bash/run.sh | 0 | ||||
| -rw-r--r-- | script-fu/3.x/przem-sepia-dust-v3x.scm | 2 | ||||
| -rw-r--r-- | script-fu/3.x/przem-warm-grayscale-v3x.scm | 78 | ||||
| -rw-r--r-- | script-fu/SNAPSHOTS/przem-harman-azure-125-v3x.scm | 101 | ||||
| -rw-r--r-- | script-fu/changelog.md | 3 |
5 files changed, 183 insertions, 1 deletions
diff --git a/bash/run.sh b/bash/run.sh index bdc4d59..bdc4d59 100755..100644 --- a/bash/run.sh +++ b/bash/run.sh diff --git a/script-fu/3.x/przem-sepia-dust-v3x.scm b/script-fu/3.x/przem-sepia-dust-v3x.scm index b77c3fe..0194786 100644 --- a/script-fu/3.x/przem-sepia-dust-v3x.scm +++ b/script-fu/3.x/przem-sepia-dust-v3x.scm @@ -1,7 +1,7 @@ ; przem-sepia-dust-v3xTworzy dramatyczne światło, wysoki kontrast. ; Przmeysław R. Pietraszczyk ; 2026-08-05 -; ver 2.260805-0 +; ver 2.260805-1 ; editor: Kate (define (przem-sepia-dust-v3x image drawable) diff --git a/script-fu/3.x/przem-warm-grayscale-v3x.scm b/script-fu/3.x/przem-warm-grayscale-v3x.scm new file mode 100644 index 0000000..d637c91 --- /dev/null +++ b/script-fu/3.x/przem-warm-grayscale-v3x.scm @@ -0,0 +1,78 @@ +; przem-warm-grayscale-v3x - imituje efekt ciepłej czernii +; author: PRP +; licencja: Public Domain +; Gdańsk - 23-10-2026 +; ver. 2.261023-0 + +(define (przem-warm-grayscale-v3x image drawable brightness saturation palette black) + + (let* ( + (layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type-with-alpha layer))) + (mask (car (gimp-channel-new image "Engraving Mask" (car (gimp-image-get-width image)) (car (gimp-image-get-height image)) black '(0.4 0.4 0.2 0.0 0.0 0.0 0.0 0.0 0.0)))) + (gradient-layer 0) + ) + (gimp-context-push) + (gimp-image-undo-group-start image) + ;; Desaturacja + (if (= type RGBA-IMAGE) + (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) + + (gimp-layer-set-mode layer 0) ; NORMAL mode + + ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę + (if (> (car (gimp-drawable-type layer)) 1) + (gimp-image-convert-rgb image)) + + ;; Dodaj ciepłe kolory przez saturację i odcień + (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) + + ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb + (set! gradient-layer (car (gimp-layer-new image "Prussian Blue" (car (gimp-image-get-width image)) (car (gimp-image-get-height image)) RGBA-IMAGE 100 LAYER-MODE-NORMAL))) + + (let* ( + + (color-response (gimp-palette-get-entry-color palette 0)) + (color (car color-response)) + ) + (gimp-context-set-foreground color) + ) + (gimp-image-insert-channel image mask -1 0) + (gimp-image-insert-layer image gradient-layer 0 -1) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 0 + FALSE 1 0 + TRUE + 0 0 0 0) + (gimp-layer-set-opacity gradient-layer 5) + + ;; profil koloru sRGB + ; (gimp-image-assign-profile image "sRGB IEC61966-2.1") + + ;; Ustaw tryb warstwy na "Normal" (jeśli potrzebne) + (gimp-layer-set-mode layer 0) + (gimp-image-undo-group-end image) + + (gimp-displays-flush) + (gimp-context-pop) + )) + +(script-fu-register-filter + "przem-warm-grayscale-v3x" + "Warm Grayscale" + "Converts a color image to a warm grayscale image (with orange/yellow +tones)" + "P.R.P" + "MIT" + "23-10-2026" + "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-PALETTE _"Palette" "Default" + SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) +) +(script-fu-menu-register "przem-warm-grayscale-v3x" +"<Image>/Filters/PIETRASZCZYK/") diff --git a/script-fu/SNAPSHOTS/przem-harman-azure-125-v3x.scm b/script-fu/SNAPSHOTS/przem-harman-azure-125-v3x.scm new file mode 100644 index 0000000..0133c40 --- /dev/null +++ b/script-fu/SNAPSHOTS/przem-harman-azure-125-v3x.scm @@ -0,0 +1,101 @@ +; przem-harman-azure-125-v3x - Imitacja filmu Harman Azure 125 +; 2026-09-20 - Przemysław R. Pietraszczyk +; licence: GPL v3 +; ver. 2.260920-0 +; Ten script-fu wykorzystuje funkcje ze skryptu 'chrome-it.scm' +; Autorstwa Spencer Kimball + +(define (shadows val) + (/ (* 0.96 val) 2.55)) + +(define (midtones val) + (/ val 2.55)) + +(define (highlights val) + ; The result is used as "gimp-drawable-color-balance" color parameter + ; and thus must be restricted to -100.0 <= highlights <= 100.0. + (min (/ (* 1.108 val) 2.55) 100.0)) + +(define (rval col) + (car col)) + +(define (gval col) + (cadr col)) + +(define (bval col) + (caddr col)) + +(define (przem-harman-azure-125-v3x image drawable) + + + ;; Duplikacja warstwy + (let* ( + (base-layer (vector-ref drawable 0)) + (dup (car (gimp-layer-copy base-layer TRUE))) + (work (car (gimp-layer-copy base-layer TRUE))) + (exposure (car (gimp-layer-copy base-layer TRUE))) + (filter-exposure 0) + ) + + (gimp-image-undo-group-start image) + + (gimp-image-insert-layer image work 0 -1) + (gimp-image-insert-layer image dup 0 -1) + + + ;; Wywołanie operacji GEGL dla temperatury barwowej + (let* ((temperature 0)) + (gimp-drawable-merge-new-filter base-layer + "gegl:color-temperature" "Temp" LAYER-MODE-REPLACE 0.95 "original-temperature" 6500.0 "intended-temperature" 9000.0) + ) + + (let* ( + ;cyan-red -0.25, magenta-green 0.20, yellow-blue 0.35 + (c1 '(-0.25 0.20 0.35)) + (c2 '(0.30 -0.10 -0.25)) + ) + (gimp-drawable-color-balance dup TRANSFER-SHADOWS 1 + (shadows (rval c1)) + (shadows (gval c1)) + (shadows (bval c1))) + (gimp-drawable-color-balance dup TRANSFER-HIGHLIGHTS 1 + (highlights (rval c2)) + (highlights (gval c2)) + (highlights (bval c2))) + (gimp-layer-set-opacity dup 0.85)) + + ;; 4. Lekka mgiełka (soft-light + blur) + ;(let* ( + ; (fog (car (gimp-layer-copy dup TRUE))) + ; ) + ; (gimp-image-insert-layer image fog 0 -1) + + ; (gimp-drawable-curves-spline fog HISTOGRAM-VALUE #(0 0 10 10 1)) + ; (gimp-layer-set-mode light-layer LAYER-MODE-SOFTLIGHT) + ; (gimp-layer-set-opacity light-layer 100) + ;) + + (let* ((temperature 0)) + (gimp-drawable-merge-new-filter exposure + "gegl:exposure" "Exp" LAYER-MODE-REPLACE 0.70 "black-level" -0.02 "exposure" 0.30) + ;(gimp-image-insert-layer image temperature 0 -1) + ) + (gimp-image-insert-layer image exposure 0 -1) + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + ) +) + +(script-fu-register-filter "przem-harman-azure-125-v3x" + _"Harman Azure 125 filmi imitation" + _"Imituje film Harman Azure 125." + "Przemysław R. Pietraszczyk" + "GPL v3" + "2026-09-20" + "RGB*" + SF-ONE-OR-MORE-DRAWABLE +) + +(script-fu-menu-register "przem-harman-azure-125-v3x" + "<Image>/Filters/PIETRASZCZYK/") diff --git a/script-fu/changelog.md b/script-fu/changelog.md index 2e18984..0446def 100644 --- a/script-fu/changelog.md +++ b/script-fu/changelog.md @@ -1,3 +1,6 @@ +# [2.261023-0] przem-warm-grayscale.scm +* Nowy filtr imitujący ciepłą czerń + # [2.260805-1] przem-sepia-dust-v3x.scm * Kopiowanie warstw roboczych z base-layer * FILL-BACKGROUND dla new-image |
