From 99170c4a17ca0256b10c4447920b669b66fce41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw?= Date: Tue, 30 Jun 2026 20:27:50 +0200 Subject: 2.260630-0 --- script-fu/3.0 (only)/przem-lith-effect-v30.scm | 114 ++++++++++++++ .../3.0/przem-add-background-under-text-v3.scm | 92 ------------ script-fu/3.0/przem-apply-sepia-v3.scm | 148 ------------------ .../3.0/przem-cyanotype-color-effect-multi-v3.scm | 58 ------- .../3.0/przem-hitchcock-d400-film-effect-v3.scm | 72 --------- script-fu/3.0/przem-ilford-expired-v3.scm | 144 ------------------ script-fu/3.0/przem-kodachrome-v3.scm | 159 -------------------- script-fu/3.0/przem-lith-effect-v3.scm | 114 -------------- script-fu/3.0/przem-oldschool-photography-v3.scm | 75 ---------- script-fu/3.0/przem-prussian-blue-effect-v3.scm | 93 ------------ .../3.0/przem-soft-focus-noninteractive-v3.scm | 54 ------- script-fu/3.0/przem-sunset-effect-v3.scm | 103 ------------- script-fu/3.0/przem-surreal-v3.scm | 96 ------------ script-fu/3.0/przem-teal-portrait-look-v3.scm | 166 --------------------- script-fu/3.0/przem-traditional-photo-v3.scm | 69 --------- script-fu/3.0/przem-true-cyjanotype-v3.scm | 99 ------------ script-fu/3.0/przem-wet-collodion-v3.scm | 151 ------------------- .../3.2/przem-add-background-under-text-v32.scm | 92 ------------ script-fu/3.2/przem-apply-sepia-v32.scm | 148 ------------------ .../3.2/przem-cyanotype-color-effect-multi-v32.scm | 58 ------- .../3.2/przem-hitchcock-d400-film-effect-v32.scm | 72 --------- script-fu/3.2/przem-ilford-expired-v32.scm | 144 ------------------ script-fu/3.2/przem-kodachrome-v32.scm | 159 -------------------- script-fu/3.2/przem-lith-effect-v32.scm | 118 --------------- script-fu/3.2/przem-oldschool-photography-v32.scm | 75 ---------- script-fu/3.2/przem-prussian-blue-effect-v32.scm | 93 ------------ .../3.2/przem-soft-focus-noninteractive-v32.scm | 54 ------- script-fu/3.2/przem-sunset-effect-v32.scm | 103 ------------- script-fu/3.2/przem-surreal-v32.scm | 98 ------------ script-fu/3.2/przem-teal-portrait-look-v32.scm | 166 --------------------- script-fu/3.2/przem-traditional-photo-v32.scm | 69 --------- script-fu/3.2/przem-true-cyjanotype-v32.scm | 99 ------------ script-fu/3.2/przem-wet-collodion-v32.scm | 151 ------------------- .../3.x/przem-add-background-under-text-v3x.scm | 92 ++++++++++++ script-fu/3.x/przem-apply-sepia-v3x.scm | 148 ++++++++++++++++++ .../3.x/przem-cyanotype-color-effect-multi-v3x.scm | 58 +++++++ .../3.x/przem-hitchcock-d400-film-effect-v3x.scm | 72 +++++++++ script-fu/3.x/przem-ilford-expired-v3x.scm | 144 ++++++++++++++++++ script-fu/3.x/przem-kodachrome-v3x.scm | 159 ++++++++++++++++++++ script-fu/3.x/przem-oldschool-photography-v3x.scm | 75 ++++++++++ script-fu/3.x/przem-prussian-blue-effect-v3x.scm | 93 ++++++++++++ .../3.x/przem-soft-focus-noninteractive-v3x.scm | 54 +++++++ script-fu/3.x/przem-sunset-effect-v3x.scm | 103 +++++++++++++ script-fu/3.x/przem-surreal-v3x.scm | 98 ++++++++++++ script-fu/3.x/przem-teal-portrait-look-v3x.scm | 166 +++++++++++++++++++++ script-fu/3.x/przem-traditional-photo-v3x.scm | 69 +++++++++ script-fu/3.x/przem-true-cyjanotype-v3x.scm | 99 ++++++++++++ script-fu/3.x/przem-wet-collodion-v3x.scm | 151 +++++++++++++++++++ script-fu/CzytajTo.md | 3 + script-fu/changelog.md | 3 + 50 files changed, 1701 insertions(+), 3392 deletions(-) create mode 100644 script-fu/3.0 (only)/przem-lith-effect-v30.scm delete mode 100644 script-fu/3.0/przem-add-background-under-text-v3.scm delete mode 100644 script-fu/3.0/przem-apply-sepia-v3.scm delete mode 100644 script-fu/3.0/przem-cyanotype-color-effect-multi-v3.scm delete mode 100644 script-fu/3.0/przem-hitchcock-d400-film-effect-v3.scm delete mode 100644 script-fu/3.0/przem-ilford-expired-v3.scm delete mode 100644 script-fu/3.0/przem-kodachrome-v3.scm delete mode 100644 script-fu/3.0/przem-lith-effect-v3.scm delete mode 100644 script-fu/3.0/przem-oldschool-photography-v3.scm delete mode 100644 script-fu/3.0/przem-prussian-blue-effect-v3.scm delete mode 100644 script-fu/3.0/przem-soft-focus-noninteractive-v3.scm delete mode 100644 script-fu/3.0/przem-sunset-effect-v3.scm delete mode 100644 script-fu/3.0/przem-surreal-v3.scm delete mode 100644 script-fu/3.0/przem-teal-portrait-look-v3.scm delete mode 100644 script-fu/3.0/przem-traditional-photo-v3.scm delete mode 100644 script-fu/3.0/przem-true-cyjanotype-v3.scm delete mode 100644 script-fu/3.0/przem-wet-collodion-v3.scm delete mode 100644 script-fu/3.2/przem-add-background-under-text-v32.scm delete mode 100644 script-fu/3.2/przem-apply-sepia-v32.scm delete mode 100644 script-fu/3.2/przem-cyanotype-color-effect-multi-v32.scm delete mode 100644 script-fu/3.2/przem-hitchcock-d400-film-effect-v32.scm delete mode 100644 script-fu/3.2/przem-ilford-expired-v32.scm delete mode 100644 script-fu/3.2/przem-kodachrome-v32.scm delete mode 100644 script-fu/3.2/przem-lith-effect-v32.scm delete mode 100644 script-fu/3.2/przem-oldschool-photography-v32.scm delete mode 100644 script-fu/3.2/przem-prussian-blue-effect-v32.scm delete mode 100644 script-fu/3.2/przem-soft-focus-noninteractive-v32.scm delete mode 100644 script-fu/3.2/przem-sunset-effect-v32.scm delete mode 100644 script-fu/3.2/przem-surreal-v32.scm delete mode 100644 script-fu/3.2/przem-teal-portrait-look-v32.scm delete mode 100644 script-fu/3.2/przem-traditional-photo-v32.scm delete mode 100644 script-fu/3.2/przem-true-cyjanotype-v32.scm delete mode 100644 script-fu/3.2/przem-wet-collodion-v32.scm create mode 100644 script-fu/3.x/przem-add-background-under-text-v3x.scm create mode 100644 script-fu/3.x/przem-apply-sepia-v3x.scm create mode 100644 script-fu/3.x/przem-cyanotype-color-effect-multi-v3x.scm create mode 100644 script-fu/3.x/przem-hitchcock-d400-film-effect-v3x.scm create mode 100644 script-fu/3.x/przem-ilford-expired-v3x.scm create mode 100644 script-fu/3.x/przem-kodachrome-v3x.scm create mode 100644 script-fu/3.x/przem-oldschool-photography-v3x.scm create mode 100644 script-fu/3.x/przem-prussian-blue-effect-v3x.scm create mode 100644 script-fu/3.x/przem-soft-focus-noninteractive-v3x.scm create mode 100644 script-fu/3.x/przem-sunset-effect-v3x.scm create mode 100644 script-fu/3.x/przem-surreal-v3x.scm create mode 100644 script-fu/3.x/przem-teal-portrait-look-v3x.scm create mode 100644 script-fu/3.x/przem-traditional-photo-v3x.scm create mode 100644 script-fu/3.x/przem-true-cyjanotype-v3x.scm create mode 100644 script-fu/3.x/przem-wet-collodion-v3x.scm create mode 100644 script-fu/CzytajTo.md (limited to 'script-fu') diff --git a/script-fu/3.0 (only)/przem-lith-effect-v30.scm b/script-fu/3.0 (only)/przem-lith-effect-v30.scm new file mode 100644 index 0000000..01c6b83 --- /dev/null +++ b/script-fu/3.0 (only)/przem-lith-effect-v30.scm @@ -0,0 +1,114 @@ +; przem-lith-effect-v30 - imitacja odbitki litowej +; author: PRP +; licencja: Public Domain +; Gdańsk - 25-12-2025 +; ver. 2.260108-0~beta + +(define (przem-lith-effect-v3 img drawable shades) + (let* ( + (source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) + (type-layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type type-layer))) + (hot-lith (list 150 75 0)) + (light-lithium-brown (list 217 169 121)) + (warm-honey-brown (list 200 146 90)) + (golden-clay (list 185 125 74)) + (amber-brown (list 168 106 58)) + (lit 0) + ) + (gimp-context-push) + (gimp-image-undo-group-start img) + + ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb img)) + + ; Konwersja obrazu do skali szarości + (if (= type RGB-IMAGE) + (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) + ) + + ;; 1. Mocny kontrast (levels) + (gimp-drawable-merge-new-filter + type-layer + "gegl:levels" + 0 + LAYER-MODE-REPLACE + 0.5 + "in-low" 0.15 + "in-high" 0.85 + ) + + ;; 2. Miękkie światła (soft-kight) + (gimp-drawable-merge-new-filter + type-layer + "gegl:soft-light" + 0 + LAYER-MODE-REPLACE + 0.5 + ) + + (if (= shades 0) + (begin + (set! lit hot-lith) + )) + (if (= shades 1) + (begin + (set! lit light-lithium-brown) + )) + (if (= shades 2) + (begin + (set! lit warm-honey-brown) + )) + (if (= shades 3) + (begin + (set! lit golden-clay) + )) + (if (= shades 4) + (begin + (set! lit amber-brown) + )) + ;; 3. Tonowanie (ciepły lith) + (gimp-drawable-merge-new-filter + type-layer + "gegl:color" + 0 + LAYER-MODE-REPLACE + 0.5 + "value" lit + ) + + ;; 4. Ziarno (noise-rgb) + (gimp-drawable-merge-new-filter + type-layer + "gegl:noise-rgb" + 0 + LAYER-MODE-NORMAL + 0.5 + "red" 0.2 + "green" 0.2 + "blue" 0.2 + "alpha" 0.0 + "independent" TRUE + ) + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-lith-effect-v3" + "_Lith effect" + "_Odbitka Litowa" + "P.R.P" + "Public Domain" + "25-12-2025" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-OPTION _"Shades of lithium" '("Hot Lith" "Light Lithium Brown" "Warm Honey Brown" "Golden Clay" "Amber Brown") + +) + +(script-fu-menu-register "przem-lith-effect-v3" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-add-background-under-text-v3.scm b/script-fu/3.0/przem-add-background-under-text-v3.scm deleted file mode 100644 index 7ea23da..0000000 --- a/script-fu/3.0/przem-add-background-under-text-v3.scm +++ /dev/null @@ -1,92 +0,0 @@ -; przem-add-background-under-text-v3 - Script-fu dodający podpis z tłem -; author: PRP -; licencja: Public Domain -; Gdańsk - 06-02-2025 -; ver. 2.260116-1~beta for Gimp 3.0 - -(define (przem-add-background-under-text-v3 image drawable text font font-size fg-color bg-color background-transparency opacity) - - (let* ( - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - (text-extents (gimp-text-get-extents-font text font-size font)) - (text-width (car text-extents)) - (text-height (cadr text-extents)) - (pos-x (- (- image-width text-width) 40)) - (pos-y (- image-height text-height)) - (bg-x-left (- pos-x 10)) - (bg-x-right (+ text-width 10)) - (text-layer 0) - (bg-layer 0) - ) - - (gimp-context-push) - (gimp-image-undo-group-start image) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image) - ) - - ; Ustawienie koloru tła - (gimp-context-set-background bg-color) - (gimp-context-set-foreground fg-color) - - (set! bg-layer (car (gimp-layer-new image "Background" bg-x-right text-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-drawable-fill bg-layer FILL-BACKGROUND) - (gimp-layer-set-opacity bg-layer opacity) - - ; Dodanie warstwy tła pod tekstem - (gimp-image-insert-layer image bg-layer 0 -1) - - ;(gimp-layer-translate bg-layer bg-x-left pos-y) - ;(gimp-selection-translate image bg-layer bg-x-left pos-y) - (gimp-layer-set-offsets bg-layer bg-x-left pos-y) - (if (= background-transparency TRUE) - (begin - (gimp-drawable-fill bg-layer FILL-TRANSPARENT) - ) - (begin ; else - ) - ) - (set! text-layer (car(gimp-text-font image -1 0 0 text 0 TRUE font-size font))) - - ; Ustawienie pozycji tekstu - (gimp-layer-set-offsets text-layer pos-x pos-y) - - ; Przesuń warstwę tekstową na górę stosu warstw - (gimp-image-raise-item-to-top image text-layer) - - ; Scalanie warstw - (gimp-image-merge-down image text-layer CLIP-TO-IMAGE) - - (gimp-image-undo-group-end image) ; Zakończ grupę operacji undo - - ; Aktualizacja widoku - (gimp-displays-flush) - (gimp-context-pop) - - ) -) - -(script-fu-register-filter "przem-add-background-under-text-v3" - _"Add Background Under Text" - _"Dodaje kolorowe tło pod tekstem z możliwością wyboru czcionki i rozmiaru." - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-02-06" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-STRING "Text" "Doda Elektroda" - SF-FONT "Font" "Monospace" - SF-ADJUSTMENT "Font Size" (list 50 1 1000 1 10 0 1) - SF-COLOR "Foreground Color" (list 100 100 100) - SF-COLOR "Background Color" (list 255 215 0) - SF-TOGGLE "Background Transparency" FALSE - SF-ADJUSTMENT "Transparency Value" (list 100 1 100 1 10 0 1) -) - -(script-fu-menu-register "przem-add-background-under-text-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-apply-sepia-v3.scm b/script-fu/3.0/przem-apply-sepia-v3.scm deleted file mode 100644 index 9ba52b4..0000000 --- a/script-fu/3.0/przem-apply-sepia-v3.scm +++ /dev/null @@ -1,148 +0,0 @@ -; przem-apply-sepia-v3 - Script-fu dodający prawdziwą sepie do zdjęcia -; author: PRP -; licencja: GPL v3 -; Gdańsk - 07-02-2025 -; ver. 2.260116-1~beta for GIMP 3 -; -; This program is free software: you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation; either version 3 of the License, or -; (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program. If not, see . -; - -(define (przem-apply-sepia-v3 image drawable value-slider-sepia shadow-sepia gradient-reverse in-sepia gradient-shape) - (let* ( - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type layer))) - (center-x (/ image-width 2)) - (center-y (/ image-height 2)) - (radius (sqrt (+ (* center-x center-x) (* center-y center-y)))) - (the-layer 0) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - - (if (> (car (gimp-drawable-type layer)) 1) - (gimp-image-convert-rgb image) - ) - - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS) - ) - - (gimp-selection-all image) - (set! the-layer (car (gimp-image-flatten image))) - - (if (= in-sepia TRUE) - (begin (gimp-drawable-desaturate the-layer DESATURATE-LIGHTNESS) - (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) - (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE 30 0 -30) - ) - ) - - (let ( - (sepia-layer (car (gimp-layer-new image "Sepia" image-width image-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - ) - - (gimp-context-set-foreground '(112 66 20)) ; sepia ciemniejszy - (gimp-context-set-background '(233 213 186)) ; sepia jasniejszy - ;(gimp-context-set-background '(210 180 140)) ; sepia jasniejsza - - ; Dodanie koloru sepii - (gimp-image-insert-layer image sepia-layer 0 -1) - - (gimp-context-push) - - ;(plug-in-checkerboard #:run-mode RUN-NONINTERACTIVE - ; #:image image - ; #:drawables (vector drawable) - ; #:psychobilly 0 - ; #:check-size 8) - (plug-in-checkerboard RUN-NONINTERACTIVE image (vector sepia-layer) 0 8) - - (gimp-context-pop) - - (gimp-context-push) - - ;(gimp-selection-all image) - ; tak było w v. 2.10 - ;(gimp-edit-blend sepia-layer FG-BG-RGB-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE TRUE 3 0 TRUE 0 0 image-width image-height) - (gimp-context-set-gradient-fg-bg-rgb) - (if (= gradient-shape 1) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-LINEAR (- 100 shadow-sepia) - FALSE 1 0 - TRUE - 0 0 image-width image-height) - ) ) - (if (= gradient-shape 2) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-SHAPEBURST-DIMPLED (- 100 shadow-sepia) - FALSE 1 0 - TRUE - 0 0 center-x center-y) - ) - ) - (if (= gradient-shape 0) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-BILINEAR (- 100 shadow-sepia) - FALSE 1 0 - TRUE - (/ (+ (* 2 center-x) center-y -1) 2) 0 - 0 0) - ) - ) - - ; Zmiana krycia warstwy - (gimp-layer-set-opacity sepia-layer value-slider-sepia) - - (gimp-image-merge-down image sepia-layer CLIP-TO-IMAGE) - ) ; let - (gimp-selection-none image) - - - (gimp-image-undo-group-end image) - ;(gimp-image-undo-enable image) - - (gimp-displays-flush) - (gimp-context-pop) - -) ) - -(script-fu-register-filter "przem-apply-sepia-v3" - _"_Apply a sepia effect to the image" - _"Tworzy obraz sepii" - "Przemyslaw R. Pietraszczyk" - "GPL v3" - "2025-02-07" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT _"Sepia intensity" '(50 0 100 1 10 0 0) ; Suwak poziomy - SF-ADJUSTMENT _"Shadow Sepia" '(30 0 100 1 10 0 0) ; Suwak poziomy - SF-TOGGLE _"Gradient reverse" FALSE - SF-TOGGLE _"Sepia" TRUE - SF-OPTION _"Shape" '("Bilinear" "Linear" "Shapeburst") - - - -) - -(script-fu-menu-register "przem-apply-sepia-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-cyanotype-color-effect-multi-v3.scm b/script-fu/3.0/przem-cyanotype-color-effect-multi-v3.scm deleted file mode 100644 index 199bdfc..0000000 --- a/script-fu/3.0/przem-cyanotype-color-effect-multi-v3.scm +++ /dev/null @@ -1,58 +0,0 @@ -; przem-cyanotype-color-effect-multi-v3 - Efekty cyjanotypi na kolor -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-08-2025 -; ver. 2.250824-2 - -(define (przem-cyanotype-color-effect-multi-v3 img drawable black blue) - - (gimp-context-push) - (gimp-image-undo-group-start img) - - ; Cyjanotypia (zostaw tylko niebieski kanał) - (let* ( - (layer (vector-ref drawable 0)) - ;(type (car (gimp-drawable-type-with-alpha cyan-layer))) - (type (car (gimp-drawable-type-with-alpha (car (gimp-layer-copy (vector-ref drawable 0)))))) - - ;(cyan-layer (car (gimp-layer-copy drawable TRUE))) - (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) - ) - (if (> (car (gimp-drawable-type layer)) 1) - (gimp-image-convert-rgb img)) - - ;; Desaturacja - ;(if (= type RGBA-IMAGE) - ;(gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) - - (let* ( - (cyan-layer (car (gimp-layer-copy (vector-ref drawable 0)))) - ) - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-image-insert-layer img cyan-layer 0 -1) - (gimp-item-set-name cyan-layer "Cyanotype") - (gimp-layer-set-mode cyan-layer LAYER-MODE-SCREEN) ; Tryb mieszania: Screen - ) - ;(gimp-hue-saturation cyan-layer 0 blue 50 0) - (gimp-image-insert-channel img mask -1 0) - ) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop)) - - -(script-fu-register-filter "przem-cyanotype-color-effect-multi-v3" - _"Add Cyanotype Color Multi..." - _"Efekty cyjanotypii na kolor" - "PRP" - "Public Domain" - "2025-08-24" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-ADJUSTMENT "Pastel blue" '(40 30 70 1 10 1 0)) - -(script-fu-menu-register "przem-cyanotype-color-effect-multi-v3" - "/Filters/PIETRASZCZYK/") - diff --git a/script-fu/3.0/przem-hitchcock-d400-film-effect-v3.scm b/script-fu/3.0/przem-hitchcock-d400-film-effect-v3.scm deleted file mode 100644 index 336ffb0..0000000 --- a/script-fu/3.0/przem-hitchcock-d400-film-effect-v3.scm +++ /dev/null @@ -1,72 +0,0 @@ -; przem-hitchcock-d400-film-effect-v3 - Imitacja filmu chińskiego HITCHOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom -; author: PRP -; licencja: Public Domain -; Gdańsk - 14-06-2026 -; ver. 2.260615-0 - -(define (przem-hitchcock-d400-film-effect-v3 image drawable - contrast - lift-blacks - warm-highlights - cool-shadows - bloom-strength) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; Duplikat warstwy bazowej - (let* ( - (type-layer (vector-ref drawable 0)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (bloom-layer 0) - ) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image) - ) - - (gimp-image-insert-layer image work-layer 0 -1) - - - (let* ((finish-layer (car (gimp-layer-copy layer TRUE))) - (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 10 #( 0 lift-blacks 64 (+ 48 contrast) 128 128 192 (- 208 contrast) 255 255)) - (gimp-layer-set-opacity finish-layer 40) - - )) - - ;; 2. Ciepłe światła – Color Balance (midtones + highlights) - ; cyan-red - magenta-green - yellow-blue (ujemne = więcej żółtego, dodatnie = więcej niebieskiego) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS FALSE 0 0 cool-shadows) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES FALSE warm-highlights 0 (- warm-highlights)) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS FALSE warm-highlights 0 (- warm-highlights)) - - ;; 3. Delikatny bloom / glow (kopiujemy warstwę, rozmywamy, Soft light) - (set! bloom-layer (car (gimp-layer-copy layer TRUE))) - (gimp-image-insert-layer image bloom-layer 0 -1) - (gimp-layer-set-mode bloom-layer LAYER-MODE-SUBTRACT) - (gimp-drawable-merge-new-filter bloom-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 8.0 "std-dev-y" 8.0 "filter" "iir") - (gimp-layer-set-opacity bloom-layer bloom-strength) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-hitchcock-d400-film-effect-v3" - _"Hitchock d400 effect" - _"Imitacja filmu chińskiego HITCHCOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom." - _"P.R.P" - "Public Domain" - "2026-06-14" - "*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Kontrast (0–80)" '(40 0 80 1 5 0 1) - SF-ADJUSTMENT "Black up (0–40)" '(12 0 40 1 5 0 1) - SF-ADJUSTMENT "Warm lights (–50 do 50)" '(15 -50 50 1 5 0 1) - SF-ADJUSTMENT "Cool shadows (–50 do 50)" '(-10 -50 50 1 5 0 1) - SF-ADJUSTMENT "Bloom – power (0–100)" '(35 0 100 1 5 0 1) -) - -(script-fu-menu-register "przem-hitchcock-d400-film-effect-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-ilford-expired-v3.scm b/script-fu/3.0/przem-ilford-expired-v3.scm deleted file mode 100644 index f89ebdd..0000000 --- a/script-fu/3.0/przem-ilford-expired-v3.scm +++ /dev/null @@ -1,144 +0,0 @@ -; przem-ilford-expired-v3 - Fotografia imitująca przeterminowany film Ilforda -; 2025-10-05 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.251006-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) - - (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 - (shadows (rval hc)) - (shadows (gval hc)) - (shadows (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 - (midtones (rval hc)) - (midtones (gval hc)) - (midtones (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 - (highlights (rval hc)) - (highlights (gval hc)) - (highlights (bval hc))) - - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval cc)) - (shadows (gval cc)) - (shadows (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval cc)) - (midtones (gval cc)) - (midtones (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval cc)) - (highlights (gval cc)) - (highlights (bval cc))) - - (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL - 0.0 - lightness - saturation - 0.0)) - - - -(define (przem-ilford-expired-v3 image drawable temperature strength apply brightness contrast saturation lightness hc cc) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - (temperature-factor (/ (- temperature 6500) 1000)) - (red-adjust (* temperature-factor (- strength))) - (blue-adjust (* temperature-factor strength)) - (brightness-value (/ brightness 100)) - (contrast-value (/ contrast 100)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-second (car (gimp-layer-copy layer TRUE))) - (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (gimp-image-insert-layer image work-layer-second 0 -1) - - (if (= apply TRUE) - (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) - - ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu - ; (gimp-message (string-append "Choice ")) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) - (if (= apply TRUE) - (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value) - (gimp-layer-set-opacity work-layer-brightness-contrast 40)) - - (apply-quick-tint image work-layer work-layer-second image-width image-height saturation lightness hc cc) - (gimp-layer-set-opacity work-layer 40) - - (let* ((finish-layer (car (gimp-layer-copy work-layer-brightness-contrast TRUE))) - (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 8 #(0 0 24 22 129 138 255 255)) - (gimp-layer-set-opacity finish-layer 40) - - )) - (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) - ;(gimp-image-merge-visible-layers image CLIP-TO-IMAGE) - (gimp-item-set-visible merged-layer TRUE)) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-ilford-expired-v3" - _"Ilford film expired" - _"Fotografia imitująca przeterminowany film Ilforda" - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-10-05" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Temperatura (K)" '(5550 1000 10000 100 1000 0 1) - SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) - SF-TOGGLE _"Apply Brightness and Contrast" FALSE - SF-ADJUSTMENT _"Brightness" '(1 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Contrast" '(5 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Saturation" '(5 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Lightness" '(-35 -100 100 1 10 0 0) - SF-COLOR _"Highlight balance" '(211 95 0) - SF-COLOR _"Chrome balance" "black" - -) - -(script-fu-menu-register "przem-ilford-expired-v3" - "/Filters/PIETRASZCZYK/") - diff --git a/script-fu/3.0/przem-kodachrome-v3.scm b/script-fu/3.0/przem-kodachrome-v3.scm deleted file mode 100644 index 534d482..0000000 --- a/script-fu/3.0/przem-kodachrome-v3.scm +++ /dev/null @@ -1,159 +0,0 @@ -; przem-kodachrome-v3 - Fotografia z okresu 20-sto lecia między wojennego -; 2025-09-25 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.250929-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) - - (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 - (shadows (rval hc)) - (shadows (gval hc)) - (shadows (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 - (midtones (rval hc)) - (midtones (gval hc)) - (midtones (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 - (highlights (rval hc)) - (highlights (gval hc)) - (highlights (bval hc))) - - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval cc)) - (shadows (gval cc)) - (shadows (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval cc)) - (midtones (gval cc)) - (midtones (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval cc)) - (highlights (gval cc)) - (highlights (bval cc))) - - (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL - 0.0 - lightness - saturation - 0.0)) - -(define (create-highlights-curve adjustment) - (let ((curve-data (make-vector 256 'byte))) - (do ((i 0 (+ i 1))) - ((= i 256)) - (if (> i 128) - ; Światła - zastosuj regulację - (aset curve-data i (min 255 (max 0 (+ i (* (- i 128) adjustment))))) - ; Cienie - bez zmian - (aset curve-data i i) - ) - ) - curve-data - ) -) - -(define (create-shadows-curve adjustment) - (let ((curve-data (make-vector 256 'byte))) - (do ((i 0 (+ i 1))) - ((= i 256)) - (if (< i 128) - ; Cienie - zastosuj regulację - (aset curve-data i (min 255 (max 0 (+ i (* i adjustment))))) - ; Światła - bez zmian - (aset curve-data i i) - ) - ) - curve-data - ) -) - -;(define (przem-oldschool-photogrphy-v3 image drawable temperature strength tint-use -; brightness contrast highlights shadows whites blacks saturation lightness hc cc) -(define (przem-kodachrome-v3 image drawable highlights shadows saturation lightness hc cc) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - ;(temperature-factor (/ (- temperature 6500) 1000)) - ;(red-adjust (* temperature-factor (- strength))) - ;(blue-adjust (* temperature-factor strength)) - ;(brightness-value (/ brightness 100)) - ;(contrast-value (/ contrast 100)) - (adjust-value-highlights (/ highlights 100)) - (adjust-value-shadow (/ shadows 100)) - (width (car (gimp-image-get-width image))) - (height (car (gimp-image-get-height image))) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-second (car (gimp-layer-copy layer TRUE))) - ;(work-layer-levels (car (gimp-layer-copy layer TRUE))) - ;(work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (curves-layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - (blacks 1) - (whites 0) - ) - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (gimp-image-insert-layer image work-layer-second 0 -1) - - (apply-quick-tint image work-layer work-layer-second width height saturation lightness hc cc) - - ; Regulacja przez poziomy - ; low imput - high input - gamma - output range - (gimp-drawable-levels work-layer 0 - blacks - whites - 1.0 1.0 1.0 0 0) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-kodachrome-v3" - _"Kodachrome" - _"Imitacja Kodachrome" - "PRP" - "Public Domain" - "2025-09-25" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT _"Highlights" '(-80 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Shadow" '(30 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Saturation" '(-80 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Lightness" '(24 -100 100 1 10 0 0) - SF-COLOR _"Highlight balance" '(211 95 0) - SF-COLOR _"Chrome balance" "black" -) - -(script-fu-menu-register "przem-kodachrome-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-lith-effect-v3.scm b/script-fu/3.0/przem-lith-effect-v3.scm deleted file mode 100644 index 91e8694..0000000 --- a/script-fu/3.0/przem-lith-effect-v3.scm +++ /dev/null @@ -1,114 +0,0 @@ -; przem-lith-effect-v3 - imitacja odbitki litowej -; author: PRP -; licencja: Public Domain -; Gdańsk - 25-12-2025 -; ver. 2.260108-0~beta - -(define (przem-lith-effect-v3 img drawable shades) - (let* ( - (source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - (hot-lith (list 150 75 0)) - (light-lithium-brown (list 217 169 121)) - (warm-honey-brown (list 200 146 90)) - (golden-clay (list 185 125 74)) - (amber-brown (list 168 106 58)) - (lit 0) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img)) - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - - ;; 1. Mocny kontrast (levels) - (gimp-drawable-merge-new-filter - type-layer - "gegl:levels" - 0 - LAYER-MODE-REPLACE - 0.5 - "in-low" 0.15 - "in-high" 0.85 - ) - - ;; 2. Miękkie światła (soft-kight) - (gimp-drawable-merge-new-filter - type-layer - "gegl:soft-light" - 0 - LAYER-MODE-REPLACE - 0.5 - ) - - (if (= shades 0) - (begin - (set! lit hot-lith) - )) - (if (= shades 1) - (begin - (set! lit light-lithium-brown) - )) - (if (= shades 2) - (begin - (set! lit warm-honey-brown) - )) - (if (= shades 3) - (begin - (set! lit golden-clay) - )) - (if (= shades 4) - (begin - (set! lit amber-brown) - )) - ;; 3. Tonowanie (ciepły lith) - (gimp-drawable-merge-new-filter - type-layer - "gegl:color" - 0 - LAYER-MODE-REPLACE - 0.5 - "value" lit - ) - - ;; 4. Ziarno (noise-rgb) - (gimp-drawable-merge-new-filter - type-layer - "gegl:noise-rgb" - 0 - LAYER-MODE-NORMAL - 0.5 - "red" 0.2 - "green" 0.2 - "blue" 0.2 - "alpha" 0.0 - "independent" TRUE - ) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-lith-effect-v3" - "_Lith effect" - "_Odbitka Litowa" - "P.R.P" - "Public Domain" - "25-12-2025" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Shades of lithium" '("Hot Lith" "Light Lithium Brown" "Warm Honey Brown" "Golden Clay" "Amber Brown") - -) - -(script-fu-menu-register "przem-lith-effect-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-oldschool-photography-v3.scm b/script-fu/3.0/przem-oldschool-photography-v3.scm deleted file mode 100644 index 36c3459..0000000 --- a/script-fu/3.0/przem-oldschool-photography-v3.scm +++ /dev/null @@ -1,75 +0,0 @@ -; przem-oldschool-photography-v3 - Fotografia z okresu 20-sto lecia między wojennego -; 2025-10-01 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.251001-0 - - - -(define (curves image width height) - ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) - (let* ((layer (gimp-layer-new image "Curves" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) - (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 12 #(0 0 51 45 102 95 153 158 204 209 255 255)) - )) -) - - -(define (przem-oldschool-photography-v3 image drawable temperature strength apply brightness contrast) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - (temperature-factor (/ (- temperature 6500) 1000)) - (red-adjust (* temperature-factor (- strength))) - (blue-adjust (* temperature-factor strength)) - (brightness-value (/ brightness 100)) - (contrast-value (/ contrast 100)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (if (= apply TRUE) - (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) - - ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu - ; (gimp-message (string-append "Choice ")) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) - (if (= apply TRUE) - (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value)) - - (curves image image-width image-height) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-oldschool-photography-v3" - _"Oldschool Photography" - _"Nawiązanie do fotografii 20-sto lecia międzywojennego" - "PRP" - "Public Domain" - "2025-10-01" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Temperatura (K)" '(5150 1000 10000 100 1000 0 1) - SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) - SF-TOGGLE _"Apply Brightness and Contrast" FALSE - SF-ADJUSTMENT _"Brightness" '(0 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Contrast" '(-30 -100 100 1 10 0 0) - -) - -(script-fu-menu-register "przem-oldschool-photography-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-prussian-blue-effect-v3.scm b/script-fu/3.0/przem-prussian-blue-effect-v3.scm deleted file mode 100644 index c439013..0000000 --- a/script-fu/3.0/przem-prussian-blue-effect-v3.scm +++ /dev/null @@ -1,93 +0,0 @@ -; przem-prussian-blue-effect-v3 - nieudalna próba nawiązania do efektu cyjanotypii -; author: PRP -; licencja: Public Domain -; Gdańsk - 22-6-2025 -; ver. 2.250712-0~beta - -(define (przem-prussian-blue-effect-v3 img drawable mode black value-blue brightness contrast invert) - - ;(script-fu-use-v3) - - (let* ((gradient-layer 0) - (in-layer (vector-ref drawable 0)) - (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - (gimp-context-set-defaults) - - (if (> (car (gimp-drawable-type in-layer)) 1) - (gimp-image-convert-rgb img)) - ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb - (set! gradient-layer (car (gimp-layer-new img "Prussian Blue" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) RGBA-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-image-insert-layer img gradient-layer 0 -1) - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-context-set-background '(0 0 0)) - - (gimp-drawable-brightness-contrast gradient-layer brightness contrast) - - (gimp-image-insert-channel img mask -1 0) - - (if (= mode 0) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-NORMAL) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 1) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-SUBTRACT) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 2) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-ADDITION) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DARKEN-ONLY) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DIFFERENCE) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - - ;(if (= invert TRUE) (gimp-invert gradient-layer)) - - (gimp-layer-set-opacity gradient-layer value-blue) - - (let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) - (gimp-item-set-visible merged-layer TRUE)) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-prussian-blue-effect-v3" - _"Apply prussian blue effect" - _"Nakłada efekt błękitu pruskiego na zdjęcie." - "PRP" - "Public Domain" - "2025-06-22" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION "Mode" '("NORMAL" "SUBTRACT" "ADDITION" "DARKEN-ONLY" "DIFFERENCE") - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-ADJUSTMENT "Blue intensity" '(60 0 100 1 10 0 0) - SF-ADJUSTMENT "Brightness" '(0 -1 1 0.0001 0.0001 2 0) - SF-ADJUSTMENT "Contrast" '(0 -1 1 0.0001 0.0001 2 0) - SF-TOGGLE "Invert" FALSE -) - -(script-fu-menu-register "przem-prussian-blue-effect-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-soft-focus-noninteractive-v3.scm b/script-fu/3.0/przem-soft-focus-noninteractive-v3.scm deleted file mode 100644 index 98d5ed0..0000000 --- a/script-fu/3.0/przem-soft-focus-noninteractive-v3.scm +++ /dev/null @@ -1,54 +0,0 @@ -; przem-soft-focus-noninteractive-v3.sh - Filtr dodający miękki focus -; 2025-06-19 - PRP -; Public Domain -; ver. 2025-06-19 - -;(define (przem-soft-focus-noninteractive-v3 basout savename) -(define (przem-soft-focus-noninteractive-v3 ask-fileglob) - - (let* ( - (thefiles (cadr (file-glob ask-fileglob 0))) - (baseout (car thefiles)) - (savename (cad thefiles)) - (image (car (gimp-file-load RUN-NONINTERACTIVE baseout savename))) - (selected-layers-array (car (gimp-image-get-selected-layers image))) - (num-selected-layers vector-length selected-layers-array) - ;(width (car (gimp-image-get-width image))) - ;(height (car (gimp-image-get-height image))) - (active-layer 0) - (blur-radius 100) - (opacity 100) - ) - - ;(gimp-message (string-append \"baseout: \" (number->string baseout))) - ;(gimp-message (string-append \"savename: \" (number->string savename))) - - (set! active-layer (vector-ref selected-layers-array (- num-selected-layers 1))) - - - ; Rozmycie Gaussa - ;(plug-in-gauss RUN-NONINTERACTIVE image active-layer blur-radius blur-radius 0) - - (gimp-drawable-merge-new-filter active-layer "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" blur-radius "std-dev-y" 0.0 "filter" "auto") - - ; Zmień tryb mieszania na Overlay lub Screen - (gimp-layer-set-mode active-layer OVERLAY-MODE) - - ; Dostosuj przezroczystość - (gimp-layer-set-opacity active-layer opacity) - ;(gimp-image-merge-down image active-layer CLIP-TO-IMAGE) - - ;(let* ( - ;(merged-layer (car (gimp-image-merge-visible-layers image EXPAND-AS-NECESSARY))) - ;(merged-layer (car (gimp-image-merge-down image active-layer CLIP-TO-IMAGE))) - ;) - ;(file-tiff-save RUN-NONINTERACTIVE image active-layer savename baseout 1) ; 1 - lZW - (gimp-file-save RUN-NONINTERACTIVE image active-layer savename baseout) - - (gimp-image-undo-enable image) - ;) - - - (gimp-image-delete image) - -)) diff --git a/script-fu/3.0/przem-sunset-effect-v3.scm b/script-fu/3.0/przem-sunset-effect-v3.scm deleted file mode 100644 index 0dbc201..0000000 --- a/script-fu/3.0/przem-sunset-effect-v3.scm +++ /dev/null @@ -1,103 +0,0 @@ -; przem-sunset-effect-v3 - imituje efekt zachodzącego słońca -; author: PRP -; licencja: Public Domain -; Gdańsk - 01-09-2025 -; ver. 2.250901-0~beta - -(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-sunset-effect-v3 img drawable) - (gimp-image-undo-group-start img) - - ; Tworzenie warstw dla różnych efektów - (let* ( - (layer (vector-ref drawable 0)) - (sunset-layer (car (gimp-layer-copy layer TRUE))) - ;(original-visible (car (gimp-drawable-get-visible drawable))) - (original-visible (car (gimp-layer-copy layer TRUE))) - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - ) - - ; Dodawanie warstwy do obrazu - (gimp-image-insert-layer img sunset-layer 0 -1) - (gimp-layer-set-mode sunset-layer LAYER-MODE-MULTIPLY) - (gimp-item-set-name sunset-layer _"Sunset Effect") - - - ; Nakładanie gradientu ciepłych kolorów - (gimp-context-set-foreground '(255 100 0)) ; pomarańczowy - (gimp-context-set-background '(150 0 50)) ; różowo-czerwony - - ; Tworzenie gradientu - (gimp-layer-set-mode sunset-layer LAYER-MODE-SUBTRACT) ; - (gimp-drawable-edit-gradient-fill sunset-layer - GRADIENT-LINEAR 1 FALSE 1 0 TRUE - 0 0 width height) - - - ; cieplejsze cienie - (gimp-drawable-color-balance sunset-layer TRANSFER-SHADOWS 1 - (shadows (rval '(30 0 -20))) - (shadows (gval '(30 0 -20))) - (shadows (bval '(30 0 -20)))) - - ; cieplejsze średnie tony - (gimp-drawable-color-balance sunset-layer TRANSFER-MIDTONES 1 - (midtones (rval '(40 0 -10))) - (midtones (gval '(40 0 -10))) - (midtones (bval '(40 0 -10)))) - - ; cieplejsze światła - (gimp-drawable-color-balance sunset-layer TRANSFER-HIGHLIGHTS 1 - (highlights (rval '(20 0 -5))) - (highlights (gval '(20 0 -5))) - (highlights (bval '(20 0 -5)))) - - - ; Zwiększenie kontrastu - ;(gimp-levels sunset-layer 0 20 230 1.0 0 255) - (gimp-drawable-levels sunset-layer 0 - 0 0.20 0 TRUE - 1.0 - 0.0 1.0 TRUE) - - ; Dodanie lekkiego rozmycia dla miękkiego efektu - ;(plug-in-gauss-iir 1 img sunset-layer 5 TRUE TRUE) - (gimp-drawable-merge-new-filter sunset-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 5 "std-dev-y" 5 "filter" "auto") - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - ) -) - -(script-fu-register-filter "przem-sunset-effect-v3" - _"Sunset Effect" - _"Imitacja kolorystyki zachodu słońca" - "P.R.P." - "Public Domain" - "2025-09-01" - "*" - SF-ONE-OR-MORE-DRAWABLE) - -(script-fu-menu-register "przem-sunset-effect-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-surreal-v3.scm b/script-fu/3.0/przem-surreal-v3.scm deleted file mode 100644 index e097f0d..0000000 --- a/script-fu/3.0/przem-surreal-v3.scm +++ /dev/null @@ -1,96 +0,0 @@ -; przem-surreal-v3 - imitacja surrealistycznych obrazów -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-12-2025 -; ver. 2.260118-0~beta - -(define (przem-surreal-v3 img drawable shades) - (let* ( - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (layer-copy 0) - (source-layer 0) - (green-layer 0) - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - (blue-glow (list 102 204 255)) - (blue-pastel (list 153 221 255)) - (blue 0) - ) - - (gimp-context-push) - (gimp-image-undo-group-start img) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img) - ) - (set! source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) - (set! layer-copy (car (gimp-layer-copy source-layer))) - - ; Dodajemy skopiowaną warstwę - (gimp-image-insert-layer img layer-copy -1) - - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img)) - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - - (if (= shades 0) - (begin - (set! blue blue-glow) - )) - (if (= shades 1) - (begin - (set! blue blue-pastel) - )) - - ;; 3. Tonowanie (niebieska poświata) - (gimp-drawable-merge-new-filter - layer-copy - "gegl:color" - 0 - LAYER-MODE-ADDITION - 0.1 - "value" blue - ) - - ; Rozmycie dla efektu mgły - (gimp-drawable-merge-new-filter layer-copy "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" 10.0 "std-dev-y" 10.0 "filter" "auto") - - ; Tryb mieszania: Overlay - (gimp-layer-set-mode layer-copy LAYER-MODE-ADDITION) - (gimp-layer-set-opacity layer-copy 70.0) - - ; Dodajemy zieloną warstwę - (set! green-layer (car (gimp-layer-new img "Green" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-image-insert-layer img green-layer -1) - (gimp-context-set-foreground '(60 120 60)) ; ciemna zieleń - (gimp-drawable-edit-fill green-layer FILL-FOREGROUND) - (gimp-layer-set-mode green-layer LAYER-MODE-MULTIPLY) - (gimp-layer-set-opacity green-layer 25.0) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-surreal-v3" - "_Surreal Toning with Green" - "_Nadaje obrazowi chłodne barwy z zielonymi akcentami i efektem mgły" - "P.R.P" - "Public Domain" - "24-12-2025" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Shades of blue" '("Glow" "Pastel") - -) - -(script-fu-menu-register "przem-surreal-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-teal-portrait-look-v3.scm b/script-fu/3.0/przem-teal-portrait-look-v3.scm deleted file mode 100644 index 1e45612..0000000 --- a/script-fu/3.0/przem-teal-portrait-look-v3.scm +++ /dev/null @@ -1,166 +0,0 @@ -; przem-teal-portrait-look-v3 - Fotografia portretowa na sterydach -; 2026-04-06 - Przemysław R. Pietraszczyk -; licence: GPL v3 -; ver. 2.260409-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 (saturation layer1) - ; drawable, HUE-Range ( Red, Yellow, Green, Cyan, Blue, Magenta, or All), - ; Hue Offset (-180 180), lightness (-100 100), saturation (-100 100) overlap (0 100) - ; Lekko przygaszona saturacja globalnie - (gimp-drawable-hue-saturation layer1 HUE-RANGE-ALL - 0.0 - 0.0 - -30 - 0.0) - - ;Podbicie cyjanów / zieleni (turkus szalika, chłodniejsze tło) - (gimp-drawable-hue-saturation layer1 HUE-RANGE-CYAN - 5 - 2 - 15 - 0.0) - - (gimp-drawable-hue-saturation layer1 HUE-RANGE-GREEN - 3 - 2 - 10 - 0.0) - - ;Delikatne ocieplenie tonów skóry (czerwienie/żółcie) - (gimp-drawable-hue-saturation layer1 HUE-RANGE-RED - -3 - 2 - 8 - 0.0) - - (gimp-drawable-hue-saturation layer1 HUE-RANGE-YELLOW - -2 - 1 - 6 - 0.0)) - -(define (teal layer2) - (let* ( - ;cyan-red -5, magenta-green 0, yellow-blue +5 - (c1 '(-5 0 5)) - (c2 '(-3 0 3)) - (c3 '(5 0 -3)) - ) - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval c1)) - (shadows (gval c1)) - (shadows (bval c1))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval c2)) - (midtones (gval c2)) - (midtones (bval c2))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval c3)) - (highlights (gval c3)) - (highlights (bval c3))) - )) - -(define (sand layer2) - (let* ( - ;cyan-red (+) 30 - ;magenta-green (+) 10 - ;yellow-blue (+) 35 - (c2 '(30 10 35)) - (c3 '(20 5 25)) - ) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval c2)) - (midtones (gval c2)) - (midtones (bval c2))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval c3)) - (highlights (gval c3)) - (highlights (bval c3))) - )) - -(define (przem-teal-portrait-look-v3 img drawable mode noise) - - (let* ( - (ref-layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy ref-layer TRUE))) - (color-layer (car (gimp-layer-copy ref-layer TRUE))) - (the-layer 0) - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - (fg-color '(203 182 138)) - ;(fg-color '(217 199 161)) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - - (if (= noise TRUE) (begin - (gimp-image-insert-layer img noise-layer 0 -1) - (gimp-context-set-foreground fg-color) - (gimp-drawable-fill noise-layer FILL-TRANSPARENT) - (gimp-layer-set-mode noise-layer LAYER-MODE-MULTIPLY))) - - ;(gimp-selection-all img) - (set! the-layer (car (gimp-image-flatten img))) - (gimp-layer-set-opacity the-layer 100) - - (gimp-image-insert-layer img color-layer 0 -1) - (if (= mode 0) (begin - ;; Delikatne przyciemnienie i zwiększenie kontrastu - ;; brightness: -5, contrast: 15 - (gimp-drawable-brightness-contrast the-layer -0.5 0.15) - (teal color-layer))) - (if (= mode 1) (begin - (gimp-drawable-brightness-contrast the-layer 0.10 0.5) - (sand color-layer))) - (gimp-layer-set-opacity color-layer 5) - - (gimp-image-insert-layer img work-layer 0 -1) - (saturation work-layer) - (gimp-layer-set-opacity work-layer 40) - - ;(let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) - ; (gimp-item-set-visible merged-layer TRUE)) - ;(gimp-selection-none img) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - )) - -(script-fu-register-filter "przem-teal-portrait-look-v3" - _"_Teal portrait look" - _"Nadaje zdjęciu miękki portretowy look: lekko przygaszone kolory, podbity turkus, ocieplona skóra, umiarkowany kontrast." - "Przemysław R. Pietraszczyk" - "GPL v3" - "2026-04-06" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Colors Balance" '("TEAL" "SAND") - SF-TOGGLE _"Sand Noise" FALSE -) - -(script-fu-menu-register "przem-teal-portrait-look-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-traditional-photo-v3.scm b/script-fu/3.0/przem-traditional-photo-v3.scm deleted file mode 100644 index ee9b727..0000000 --- a/script-fu/3.0/przem-traditional-photo-v3.scm +++ /dev/null @@ -1,69 +0,0 @@ -; przem-traditional-photo-v3 - luźne nawiązanie do chemii tradycyjnej fototgrafii -; author: PRP -; licencja: Public Domain -; Gdańsk - 15-02-2025 -; ver. 2.250217-0~beta for GIMP 3 - - -(define (przem-traditional-photo-v3 image drawable crossing contrast-colors balance-color) - (let ( - ;(the-image (car (gimp-image-duplicate image)) image) - (the-layer 0) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - (gimp-image-undo-group-start image) - - ;(gimp-selection-all the-image) - - (set! the-layer (car (gimp-image-flatten image))) - - (if (= crossing TRUE) - (cross image image-width image-height)) - ;(if (= grain TRUE) - ; (gimp-noise-hurl drawable 1 0.02)) - (if (= contrast-colors TRUE) - ; Zmniejsz kontrast i dodaj kolor - (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) - (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE balance-color 0 -30)) - - ;(gimp-selection-none the-tmage) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) -) ) - -(define (cross image width height) - ; crossing photo - ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) - (let* ((layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - - (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) - - (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 10 #(0 0 64 90 128 160 192 230 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-RED 10 #(0 0 64 50 128 180 192 230 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-GREEN 10 #(0 0 64 80 128 120 192 200 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-BLUE 10 #(0 0 64 30 128 150 192 220 255 255)) - ; lub - ;(define value #(0 0 64 90 128 160 192 230 255 255)) - ;(gimp-drawable-curves-spline drawable HISTOGRAM-VALUE 10 value) - )) -) - -(script-fu-register-filter "przem-traditional-photo-v3" - _"_Convert photographs to neotraditional" - _"Konwertuje na neotradycyjną fotografię" - "Przemyslaw R. Pietraszczyk" - "Public Domain" - "2025-02-15" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-TOGGLE _"Crossing" FALSE - SF-TOGGLE _"Contrast and Color corection" TRUE - ;SF-ADJUSTMENT _"Contrast" (list -0.15625 -1 1 0.00010 0.00100 0 0) ; źle działa dodanie jako parametru - SF-ADJUSTMENT _"Balance Color" (list -30 -100 100 1 1 0 0) -) - -(script-fu-menu-register "przem-traditional-photo-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-true-cyjanotype-v3.scm b/script-fu/3.0/przem-true-cyjanotype-v3.scm deleted file mode 100644 index c67476f..0000000 --- a/script-fu/3.0/przem-true-cyjanotype-v3.scm +++ /dev/null @@ -1,99 +0,0 @@ -; przem-true-cyjantype-v3 - imituje efekt prawdziwej cyjanotypii -; author: PRP -; licencja: Public Domain -; Gdańsk - 14-10-2025 -; ver. 2.251104-1 - -(define (przem-true-cyjantype-v3 image drawable black normalize value-blue invert replace tone-curve) - (let* ((gradient-layer 0) - (type-layer (vector-ref drawable 0)) - (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)))) - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type layer))) - (gradient-reverse FALSE) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image)) - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - - - ; 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))) - - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-context-set-background '(0 0 0)) - - (gimp-image-insert-channel image mask -1 0) - - - (gimp-image-insert-layer image gradient-layer 0 -1) - - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 0 - FALSE 1 0 - TRUE - 0 0 0 0) - (gimp-layer-set-opacity gradient-layer value-blue) - - ; w przeciwieństwie do wer. 2.10 krzywe tonalne działają inaczej - (if (= tone-curve TRUE) - (let* ((curves-layer (car (gimp-layer-copy gradient-layer TRUE))) - ;(gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE 10 #(0 0 32 40 128 140 220 230 255 255)) - ; nie trzeba już deklarować długości vektora - (gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE #(0 0 (/ 32 255) (/ 40 255) (/ 128 255) (/ 140 255) (/ 220 255) (/ 230 255) (/ 255 255) (/ 255 255))) - ) - (gimp-image-insert-layer image curves-layer 0 -1) - (gimp-item-set-visible curves-layer TRUE) - )) - - (if (= invert TRUE) - (gimp-drawable-invert type-layer FALSE)) - - ;(if (= replace TRUE) - ; ; Wybierz tylko czarne piksele - ; (gimp-image-select-color image CHANNEL-OP-REPLACE drawable '(0 0 0)) - - ; ; Wypełnij wybrane obszary kolorem granatowym - ; (gimp-context-set-foreground '(0 0 128)) ; RGB dla granatowego - ; (gimp-edit-bucket-fill drawable BUCKET-FILL-FG LAYER-MODE-NORMAL 100 0 FALSE 0 0) - ; ; Odznacz selekcję - ; (gimp-selection-none image)) - - (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) - (gimp-item-set-visible merged-layer TRUE)) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-true-cyjantype-v3" - _"Apply true cyjanotype effect" - _"Pseudo-prawdziwa próba imitacji cyjanotypii" - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-09-21" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-TOGGLE "Normalize to 100%" TRUE - SF-ADJUSTMENT "Blue intensity" '(50 0 100 1 10 0 0) - SF-TOGGLE "Invert colors" FALSE - SF-TOGGLE "Replace black" FALSE - SF-TOGGLE "Tone Curve" TRUE - -) - -(script-fu-menu-register "przem-true-cyjantype-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.0/przem-wet-collodion-v3.scm b/script-fu/3.0/przem-wet-collodion-v3.scm deleted file mode 100644 index 1fa2ba3..0000000 --- a/script-fu/3.0/przem-wet-collodion-v3.scm +++ /dev/null @@ -1,151 +0,0 @@ -; przem-wet-collodion-v3 - imituje efekt mokrego kolodionu -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-08-2025 -; ver. 2.250824-1~beta - -(define (add-hsv-noise img drawable intensity-h intensity-s intensity-v grain) - (let* ( - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - ) - - ; Konwertuj do HSV jeśli to konieczne - ;(if (not (= (car (gimp-drawable-is-rgb drawable)) 1)) - ; (gimp-image-convert-rgb img)) - - (gimp-image-insert-layer img noise-layer 0 -1) - (gimp-drawable-fill noise-layer FILL-TRANSPARENT) - - ; Generuj szum - ;(plug-in-solid-noise RUN-NONINTERACTIVE img noise-layer 0 0 (random 1000) 0 4 4) - (let* ((noise-width (cadddr (gimp-drawable-mask-intersect drawable))) - (noise-height (caddr (cddr (gimp-drawable-mask-intersect drawable))))) - - (gimp-drawable-merge-new-filter noise-layer "gegl:noise-solid" 0 LAYER-MODE-REPLACE 1.0 "tileable" FALSE "turbulent" FALSE "seed" (random 100) - "detail" 1 "x-size" 4.0 "y-size" 4.0 - "width" noise-width "height"noise-height)) - - - - ; Ustaw odpowiednie intensywności dla każdego kanału HSV - (let* ( - (h-channel (car (gimp-layer-new img "H Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-HUE))) - (s-channel (car (gimp-layer-new img "S Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-SATURATION))) - (v-channel (car (gimp-layer-new img "V Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-VALUE)))) - - ; Dodaj kanały - (gimp-image-insert-layer img h-channel 0 -1) - (gimp-image-insert-layer img s-channel 0 -1) - (gimp-image-insert-layer img v-channel 0 -1) - - ; Skopiuj szum do każdego kanału - (gimp-edit-copy (vector noise-layer)) - ; czy to potrzebne ? - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste h-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste s-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste v-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - (gimp-layer-set-opacity noise-layer 80) - - ; Ustaw przezroczystość dla każdego kanału - (gimp-layer-set-opacity h-channel intensity-h) - (gimp-layer-set-opacity s-channel intensity-s) - (gimp-layer-set-opacity v-channel intensity-v) - - ; Połącz kanały z oryginalnym obrazem - (gimp-image-merge-down img h-channel EXPAND-AS-NECESSARY) - (gimp-image-merge-down img s-channel EXPAND-AS-NECESSARY) - (gimp-image-merge-down img v-channel EXPAND-AS-NECESSARY) - - - ) - ;(gimp-image-remove-layer img noise-layer) - ) -) - - - - -(define (przem-wet-collodion-v3 image drawable mode intensity-h intensity-s intensity-v grain blur) - (let* ( - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type-with-alpha layer))) - (width (car (gimp-image-get-width image))) - (height (car (gimp-image-get-height image))) - (mode-blur 0) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; Desaturacja - (if (= type RGBA-IMAGE) - (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) - - ;; Dodanie winiety - (let* ((w-layer (car (gimp-layer-copy layer TRUE)))) - (gimp-image-insert-layer image w-layer 0 -1) - (gimp-drawable-merge-new-filter w-layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" 200 "std-dev-y" 200 "filter" "auto") - (gimp-layer-set-mode w-layer LAYER-MODE-MULTIPLY) - (gimp-layer-set-opacity w-layer 60) - ) - - ;; Dodanie szumu - (add-hsv-noise image layer intensity-h intensity-s intensity-v grain) - ;;(plug-in-noisify RUN-NONINTERACTIVE image layer FALSE grain grain grain 0) - - ;; Dodanie lekkiego rozmycia - (if (= mode 0) (begin (set! mode-blur "auto"))) - (if (= mode 1) (begin (set! mode-blur "iir"))) - (if (= mode 2) (begin (set! mode-blur "fir"))) - (gimp-drawable-merge-new-filter layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" blur "std-dev-y" blur "filter" mode-blur) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-wet-collodion-v3" - _"Wet Collodion" - _"Imituje efekt mokrego kolodionu" - "PRP" - "Public Domain" - "2025-07-15" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION "Mode" '("AUTO" "IIR" "FIR") - SF-ADJUSTMENT "Hue Noise Intensity" '(30 0 100 1 10 0 0) - SF-ADJUSTMENT "Saturation Noise Intensity" '(20 0 100 1 10 0 0) - SF-ADJUSTMENT "Value Noise Intensity" '(15 0 100 1 10 0 0) - SF-ADJUSTMENT "Grain" '(0.2 0 1 0.1 0.1 2 0) - SF-ADJUSTMENT "Blur" '(2 0 100 1 10 0 0) -) - -(script-fu-menu-register "przem-wet-collodion-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-add-background-under-text-v32.scm b/script-fu/3.2/przem-add-background-under-text-v32.scm deleted file mode 100644 index 7e557c6..0000000 --- a/script-fu/3.2/przem-add-background-under-text-v32.scm +++ /dev/null @@ -1,92 +0,0 @@ -; przem-add-background-under-text-v32 - Script-fu dodający podpis z tłem -; author: PRP -; licencja: Public Domain -; Gdańsk - 06-02-2025 -; ver. 2.260116-1~beta for Gimp 3.0 - -(define (przem-add-background-under-text-v32 image drawable text font font-size fg-color bg-color background-transparency opacity) - - (let* ( - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - (text-extents (gimp-text-get-extents-font text font-size font)) - (text-width (car text-extents)) - (text-height (cadr text-extents)) - (pos-x (- (- image-width text-width) 40)) - (pos-y (- image-height text-height)) - (bg-x-left (- pos-x 10)) - (bg-x-right (+ text-width 10)) - (text-layer 0) - (bg-layer 0) - ) - - (gimp-context-push) - (gimp-image-undo-group-start image) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image) - ) - - ; Ustawienie koloru tła - (gimp-context-set-background bg-color) - (gimp-context-set-foreground fg-color) - - (set! bg-layer (car (gimp-layer-new image "Background" bg-x-right text-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-drawable-fill bg-layer FILL-BACKGROUND) - (gimp-layer-set-opacity bg-layer opacity) - - ; Dodanie warstwy tła pod tekstem - (gimp-image-insert-layer image bg-layer 0 -1) - - ;(gimp-layer-translate bg-layer bg-x-left pos-y) - ;(gimp-selection-translate image bg-layer bg-x-left pos-y) - (gimp-layer-set-offsets bg-layer bg-x-left pos-y) - (if (= background-transparency TRUE) - (begin - (gimp-drawable-fill bg-layer FILL-TRANSPARENT) - ) - (begin ; else - ) - ) - (set! text-layer (car(gimp-text-font image -1 0 0 text 0 TRUE font-size font))) - - ; Ustawienie pozycji tekstu - (gimp-layer-set-offsets text-layer pos-x pos-y) - - ; Przesuń warstwę tekstową na górę stosu warstw - (gimp-image-raise-item-to-top image text-layer) - - ; Scalanie warstw - (gimp-image-merge-down image text-layer CLIP-TO-IMAGE) - - (gimp-image-undo-group-end image) ; Zakończ grupę operacji undo - - ; Aktualizacja widoku - (gimp-displays-flush) - (gimp-context-pop) - - ) -) - -(script-fu-register-filter "przem-add-background-under-text-v32" - _"Add Background Under Text" - _"Dodaje kolorowe tło pod tekstem z możliwością wyboru czcionki i rozmiaru." - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-02-06" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-STRING "Text" "Doda Elektroda" - SF-FONT "Font" "Monospace" - SF-ADJUSTMENT "Font Size" (list 50 1 1000 1 10 0 1) - SF-COLOR "Foreground Color" (list 100 100 100) - SF-COLOR "Background Color" (list 255 215 0) - SF-TOGGLE "Background Transparency" FALSE - SF-ADJUSTMENT "Transparency Value" (list 100 1 100 1 10 0 1) -) - -(script-fu-menu-register "przem-add-background-under-text-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-apply-sepia-v32.scm b/script-fu/3.2/przem-apply-sepia-v32.scm deleted file mode 100644 index f82ac3b..0000000 --- a/script-fu/3.2/przem-apply-sepia-v32.scm +++ /dev/null @@ -1,148 +0,0 @@ -; przem-apply-sepia-v32 - Script-fu dodający prawdziwą sepie do zdjęcia -; author: PRP -; licencja: GPL v3 -; Gdańsk - 07-02-2025 -; ver. 2.260116-1~beta for GIMP 3 -; -; This program is free software: you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation; either version 3 of the License, or -; (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program. If not, see . -; - -(define (przem-apply-sepia-v32 image drawable value-slider-sepia shadow-sepia gradient-reverse in-sepia gradient-shape) - (let* ( - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type layer))) - (center-x (/ image-width 2)) - (center-y (/ image-height 2)) - (radius (sqrt (+ (* center-x center-x) (* center-y center-y)))) - (the-layer 0) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - - (if (> (car (gimp-drawable-type layer)) 1) - (gimp-image-convert-rgb image) - ) - - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS) - ) - - (gimp-selection-all image) - (set! the-layer (car (gimp-image-flatten image))) - - (if (= in-sepia TRUE) - (begin (gimp-drawable-desaturate the-layer DESATURATE-LIGHTNESS) - (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) - (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE 30 0 -30) - ) - ) - - (let ( - (sepia-layer (car (gimp-layer-new image "Sepia" image-width image-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - ) - - (gimp-context-set-foreground '(112 66 20)) ; sepia ciemniejszy - (gimp-context-set-background '(233 213 186)) ; sepia jasniejszy - ;(gimp-context-set-background '(210 180 140)) ; sepia jasniejsza - - ; Dodanie koloru sepii - (gimp-image-insert-layer image sepia-layer 0 -1) - - (gimp-context-push) - - ;(plug-in-checkerboard #:run-mode RUN-NONINTERACTIVE - ; #:image image - ; #:drawables (vector drawable) - ; #:psychobilly 0 - ; #:check-size 8) - (plug-in-checkerboard RUN-NONINTERACTIVE image (vector sepia-layer) 0 8) - - (gimp-context-pop) - - (gimp-context-push) - - ;(gimp-selection-all image) - ; tak było w v. 2.10 - ;(gimp-edit-blend sepia-layer FG-BG-RGB-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE TRUE 3 0 TRUE 0 0 image-width image-height) - (gimp-context-set-gradient-fg-bg-rgb) - (if (= gradient-shape 1) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-LINEAR (- 100 shadow-sepia) - FALSE 1 0 - TRUE - 0 0 image-width image-height) - ) ) - (if (= gradient-shape 2) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-SHAPEBURST-DIMPLED (- 100 shadow-sepia) - FALSE 1 0 - TRUE - 0 0 center-x center-y) - ) - ) - (if (= gradient-shape 0) - (begin - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill sepia-layer - GRADIENT-BILINEAR (- 100 shadow-sepia) - FALSE 1 0 - TRUE - (/ (+ (* 2 center-x) center-y -1) 2) 0 - 0 0) - ) - ) - - ; Zmiana krycia warstwy - (gimp-layer-set-opacity sepia-layer value-slider-sepia) - - (gimp-image-merge-down image sepia-layer CLIP-TO-IMAGE) - ) ; let - (gimp-selection-none image) - - - (gimp-image-undo-group-end image) - ;(gimp-image-undo-enable image) - - (gimp-displays-flush) - (gimp-context-pop) - -) ) - -(script-fu-register-filter "przem-apply-sepia-v32" - _"_Apply a sepia effect to the image" - _"Tworzy obraz sepii" - "Przemyslaw R. Pietraszczyk" - "GPL v3" - "2025-02-07" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT _"Sepia intensity" '(50 0 100 1 10 0 0) ; Suwak poziomy - SF-ADJUSTMENT _"Shadow Sepia" '(30 0 100 1 10 0 0) ; Suwak poziomy - SF-TOGGLE _"Gradient reverse" FALSE - SF-TOGGLE _"Sepia" TRUE - SF-OPTION _"Shape" '("Bilinear" "Linear" "Shapeburst") - - - -) - -(script-fu-menu-register "przem-apply-sepia-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-cyanotype-color-effect-multi-v32.scm b/script-fu/3.2/przem-cyanotype-color-effect-multi-v32.scm deleted file mode 100644 index 8b8d079..0000000 --- a/script-fu/3.2/przem-cyanotype-color-effect-multi-v32.scm +++ /dev/null @@ -1,58 +0,0 @@ -; przem-cyanotype-color-effect-multi-v32 - Efekty cyjanotypi na kolor -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-08-2025 -; ver. 2.250824-2 - -(define (przem-cyanotype-color-effect-multi-v32 img drawable black blue) - - (gimp-context-push) - (gimp-image-undo-group-start img) - - ; Cyjanotypia (zostaw tylko niebieski kanał) - (let* ( - (layer (vector-ref drawable 0)) - ;(type (car (gimp-drawable-type-with-alpha cyan-layer))) - (type (car (gimp-drawable-type-with-alpha (car (gimp-layer-copy (vector-ref drawable 0)))))) - - ;(cyan-layer (car (gimp-layer-copy drawable TRUE))) - (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) - ) - (if (> (car (gimp-drawable-type layer)) 1) - (gimp-image-convert-rgb img)) - - ;; Desaturacja - ;(if (= type RGBA-IMAGE) - ;(gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) - - (let* ( - (cyan-layer (car (gimp-layer-copy (vector-ref drawable 0)))) - ) - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-image-insert-layer img cyan-layer 0 -1) - (gimp-item-set-name cyan-layer "Cyanotype") - (gimp-layer-set-mode cyan-layer LAYER-MODE-SCREEN) ; Tryb mieszania: Screen - ) - ;(gimp-hue-saturation cyan-layer 0 blue 50 0) - (gimp-image-insert-channel img mask -1 0) - ) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop)) - - -(script-fu-register-filter "przem-cyanotype-color-effect-multi-v32" - _"Add Cyanotype Color Multi..." - _"Efekty cyjanotypii na kolor" - "PRP" - "Public Domain" - "2025-08-24" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-ADJUSTMENT "Pastel blue" '(40 30 70 1 10 1 0)) - -(script-fu-menu-register "przem-cyanotype-color-effect-multi-v32" - "/Filters/PIETRASZCZYK/") - diff --git a/script-fu/3.2/przem-hitchcock-d400-film-effect-v32.scm b/script-fu/3.2/przem-hitchcock-d400-film-effect-v32.scm deleted file mode 100644 index 336ffb0..0000000 --- a/script-fu/3.2/przem-hitchcock-d400-film-effect-v32.scm +++ /dev/null @@ -1,72 +0,0 @@ -; przem-hitchcock-d400-film-effect-v3 - Imitacja filmu chińskiego HITCHOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom -; author: PRP -; licencja: Public Domain -; Gdańsk - 14-06-2026 -; ver. 2.260615-0 - -(define (przem-hitchcock-d400-film-effect-v3 image drawable - contrast - lift-blacks - warm-highlights - cool-shadows - bloom-strength) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; Duplikat warstwy bazowej - (let* ( - (type-layer (vector-ref drawable 0)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (bloom-layer 0) - ) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image) - ) - - (gimp-image-insert-layer image work-layer 0 -1) - - - (let* ((finish-layer (car (gimp-layer-copy layer TRUE))) - (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 10 #( 0 lift-blacks 64 (+ 48 contrast) 128 128 192 (- 208 contrast) 255 255)) - (gimp-layer-set-opacity finish-layer 40) - - )) - - ;; 2. Ciepłe światła – Color Balance (midtones + highlights) - ; cyan-red - magenta-green - yellow-blue (ujemne = więcej żółtego, dodatnie = więcej niebieskiego) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS FALSE 0 0 cool-shadows) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES FALSE warm-highlights 0 (- warm-highlights)) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS FALSE warm-highlights 0 (- warm-highlights)) - - ;; 3. Delikatny bloom / glow (kopiujemy warstwę, rozmywamy, Soft light) - (set! bloom-layer (car (gimp-layer-copy layer TRUE))) - (gimp-image-insert-layer image bloom-layer 0 -1) - (gimp-layer-set-mode bloom-layer LAYER-MODE-SUBTRACT) - (gimp-drawable-merge-new-filter bloom-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 8.0 "std-dev-y" 8.0 "filter" "iir") - (gimp-layer-set-opacity bloom-layer bloom-strength) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-hitchcock-d400-film-effect-v3" - _"Hitchock d400 effect" - _"Imitacja filmu chińskiego HITCHCOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom." - _"P.R.P" - "Public Domain" - "2026-06-14" - "*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Kontrast (0–80)" '(40 0 80 1 5 0 1) - SF-ADJUSTMENT "Black up (0–40)" '(12 0 40 1 5 0 1) - SF-ADJUSTMENT "Warm lights (–50 do 50)" '(15 -50 50 1 5 0 1) - SF-ADJUSTMENT "Cool shadows (–50 do 50)" '(-10 -50 50 1 5 0 1) - SF-ADJUSTMENT "Bloom – power (0–100)" '(35 0 100 1 5 0 1) -) - -(script-fu-menu-register "przem-hitchcock-d400-film-effect-v3" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-ilford-expired-v32.scm b/script-fu/3.2/przem-ilford-expired-v32.scm deleted file mode 100644 index de8fc89..0000000 --- a/script-fu/3.2/przem-ilford-expired-v32.scm +++ /dev/null @@ -1,144 +0,0 @@ -; przem-ilford-expired-v32 - Fotografia imitująca przeterminowany film Ilforda -; 2025-10-05 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.251006-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) - - (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 - (shadows (rval hc)) - (shadows (gval hc)) - (shadows (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 - (midtones (rval hc)) - (midtones (gval hc)) - (midtones (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 - (highlights (rval hc)) - (highlights (gval hc)) - (highlights (bval hc))) - - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval cc)) - (shadows (gval cc)) - (shadows (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval cc)) - (midtones (gval cc)) - (midtones (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval cc)) - (highlights (gval cc)) - (highlights (bval cc))) - - (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL - 0.0 - lightness - saturation - 0.0)) - - - -(define (przem-ilford-expired-v32 image drawable temperature strength apply brightness contrast saturation lightness hc cc) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - (temperature-factor (/ (- temperature 6500) 1000)) - (red-adjust (* temperature-factor (- strength))) - (blue-adjust (* temperature-factor strength)) - (brightness-value (/ brightness 100)) - (contrast-value (/ contrast 100)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-second (car (gimp-layer-copy layer TRUE))) - (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (gimp-image-insert-layer image work-layer-second 0 -1) - - (if (= apply TRUE) - (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) - - ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu - ; (gimp-message (string-append "Choice ")) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) - (if (= apply TRUE) - (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value) - (gimp-layer-set-opacity work-layer-brightness-contrast 40)) - - (apply-quick-tint image work-layer work-layer-second image-width image-height saturation lightness hc cc) - (gimp-layer-set-opacity work-layer 40) - - (let* ((finish-layer (car (gimp-layer-copy work-layer-brightness-contrast TRUE))) - (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 8 #(0 0 24 22 129 138 255 255)) - (gimp-layer-set-opacity finish-layer 40) - - )) - (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) - ;(gimp-image-merge-visible-layers image CLIP-TO-IMAGE) - (gimp-item-set-visible merged-layer TRUE)) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-ilford-expired-v32" - _"Ilford film expired" - _"Fotografia imitująca przeterminowany film Ilforda" - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-10-05" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Temperatura (K)" '(5550 1000 10000 100 1000 0 1) - SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) - SF-TOGGLE _"Apply Brightness and Contrast" FALSE - SF-ADJUSTMENT _"Brightness" '(1 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Contrast" '(5 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Saturation" '(5 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Lightness" '(-35 -100 100 1 10 0 0) - SF-COLOR _"Highlight balance" '(211 95 0) - SF-COLOR _"Chrome balance" "black" - -) - -(script-fu-menu-register "przem-ilford-expired-v32" - "/Filters/PIETRASZCZYK/") - diff --git a/script-fu/3.2/przem-kodachrome-v32.scm b/script-fu/3.2/przem-kodachrome-v32.scm deleted file mode 100644 index 526e96c..0000000 --- a/script-fu/3.2/przem-kodachrome-v32.scm +++ /dev/null @@ -1,159 +0,0 @@ -; przem-kodachrome-v32 - Fotografia z okresu 20-sto lecia między wojennego -; 2025-09-25 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.250929-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) - - (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 - (shadows (rval hc)) - (shadows (gval hc)) - (shadows (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 - (midtones (rval hc)) - (midtones (gval hc)) - (midtones (bval hc))) - (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 - (highlights (rval hc)) - (highlights (gval hc)) - (highlights (bval hc))) - - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval cc)) - (shadows (gval cc)) - (shadows (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval cc)) - (midtones (gval cc)) - (midtones (bval cc))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval cc)) - (highlights (gval cc)) - (highlights (bval cc))) - - (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL - 0.0 - lightness - saturation - 0.0)) - -(define (create-highlights-curve adjustment) - (let ((curve-data (make-vector 256 'byte))) - (do ((i 0 (+ i 1))) - ((= i 256)) - (if (> i 128) - ; Światła - zastosuj regulację - (aset curve-data i (min 255 (max 0 (+ i (* (- i 128) adjustment))))) - ; Cienie - bez zmian - (aset curve-data i i) - ) - ) - curve-data - ) -) - -(define (create-shadows-curve adjustment) - (let ((curve-data (make-vector 256 'byte))) - (do ((i 0 (+ i 1))) - ((= i 256)) - (if (< i 128) - ; Cienie - zastosuj regulację - (aset curve-data i (min 255 (max 0 (+ i (* i adjustment))))) - ; Światła - bez zmian - (aset curve-data i i) - ) - ) - curve-data - ) -) - -;(define (przem-oldschool-photogrphy-v3 image drawable temperature strength tint-use -; brightness contrast highlights shadows whites blacks saturation lightness hc cc) -(define (przem-kodachrome-v32 image drawable highlights shadows saturation lightness hc cc) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - ;(temperature-factor (/ (- temperature 6500) 1000)) - ;(red-adjust (* temperature-factor (- strength))) - ;(blue-adjust (* temperature-factor strength)) - ;(brightness-value (/ brightness 100)) - ;(contrast-value (/ contrast 100)) - (adjust-value-highlights (/ highlights 100)) - (adjust-value-shadow (/ shadows 100)) - (width (car (gimp-image-get-width image))) - (height (car (gimp-image-get-height image))) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-second (car (gimp-layer-copy layer TRUE))) - ;(work-layer-levels (car (gimp-layer-copy layer TRUE))) - ;(work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (curves-layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - (blacks 1) - (whites 0) - ) - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (gimp-image-insert-layer image work-layer-second 0 -1) - - (apply-quick-tint image work-layer work-layer-second width height saturation lightness hc cc) - - ; Regulacja przez poziomy - ; low imput - high input - gamma - output range - (gimp-drawable-levels work-layer 0 - blacks - whites - 1.0 1.0 1.0 0 0) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-kodachrome-v32" - _"Kodachrome" - _"Imitacja Kodachrome" - "PRP" - "Public Domain" - "2025-09-25" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT _"Highlights" '(-80 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Shadow" '(30 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Saturation" '(-80 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Lightness" '(24 -100 100 1 10 0 0) - SF-COLOR _"Highlight balance" '(211 95 0) - SF-COLOR _"Chrome balance" "black" -) - -(script-fu-menu-register "przem-kodachrome-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-lith-effect-v32.scm b/script-fu/3.2/przem-lith-effect-v32.scm deleted file mode 100644 index 0de2220..0000000 --- a/script-fu/3.2/przem-lith-effect-v32.scm +++ /dev/null @@ -1,118 +0,0 @@ -; przem-lith-effect-v32 - imitacja odbitki litowej -; author: PRP -; licencja: Public Domain -; Gdańsk - 25-12-2025 -; ver. 2.260505-0~prealpha - -(define (przem-lith-effect-v32 img drawable shades) - (let* ( - (source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - - - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img)) - - ;; 1. Mocny kontrast (levels) - (gimp-drawable-merge-new-filter - type-layer - "gegl:levels" - 0 - LAYER-MODE-REPLACE - 0.5 - "in-low" 0.15 - "in-high" 0.85 - ) - - (let* ( - (lit 0) - (hot-lith (list 150 75 0)) - (light-lithium-brown (list 217 169 121)) - (warm-honey-brown (list 200 146 90)) - (golden-clay (list 185 125 74)) - (amber-brown (list 168 106 58)) - - (if (= shades 0) - (begin - (set! lit hot-lith) - )) - (if (= shades 1) - (begin - (set! lit light-lithium-brown) - )) - (if (= shades 2) - (begin - (set! lit warm-honey-brown) - )) - (if (= shades 3) - (begin - (set! lit golden-clay) - )) - (if (= shades 4) - (begin - (set! lit amber-brown) - )) - - ;; 2. Miękkie światła (soft-kight) - (gimp-drawable-merge-new-filter - type-layer - "gegl:soft-light" - 0 - LAYER-MODE-REPLACE - 0.5 - ) - ;; 3. Tonowanie (ciepły lith) - (gimp-drawable-merge-new-filter - type-layer - "gegl:color" - "color-filter" - LAYER-MODE-REPLACE - 0.5 - "value" lit - ) - ) - ) - ;; 4. Ziarno (noise-rgb) - (gimp-drawable-merge-new-filter - type-layer - "gegl:noise-rgb" - 0 - LAYER-MODE-NORMAL - 0.5 - "red" 0.2 - "green" 0.2 - "blue" 0.2 - "alpha" 0.0 - "independent" TRUE - ) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-lith-effect-v32" - "_Lith effect" - "_Odbitka Litowa" - "P.R.P" - "Public Domain" - "25-12-2025" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Shades of lithium" '("Hot Lith" "Light Lithium Brown" "Warm Honey Brown" "Golden Clay" "Amber Brown") - -) - -(script-fu-menu-register "przem-lith-effect-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-oldschool-photography-v32.scm b/script-fu/3.2/przem-oldschool-photography-v32.scm deleted file mode 100644 index 3277166..0000000 --- a/script-fu/3.2/przem-oldschool-photography-v32.scm +++ /dev/null @@ -1,75 +0,0 @@ -; przem-oldschool-photography-v32 - Fotografia z okresu 20-sto lecia między wojennego -; 2025-10-01 - Przemysław R. Pietraszczyk -; licence: Public Domain -; ver. 2.251001-0 - - - -(define (curves image width height) - ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) - (let* ((layer (gimp-layer-new image "Curves" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) - (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 12 #(0 0 51 45 102 95 153 158 204 209 255 255)) - )) -) - - -(define (przem-oldschool-photography-v32 image drawable temperature strength apply brightness contrast) - - ; use v3 binding of return args from PDB - ;(script-fu-use-v3) - - (let* ( - (temperature-factor (/ (- temperature 6500) 1000)) - (red-adjust (* temperature-factor (- strength))) - (blue-adjust (* temperature-factor strength)) - (brightness-value (/ brightness 100)) - (contrast-value (/ contrast 100)) - (layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy layer TRUE))) - (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - - (gimp-image-undo-group-start image) - (gimp-context-push) - - (gimp-image-insert-layer image work-layer 0 -1) - (if (= apply TRUE) - (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) - - ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu - ; (gimp-message (string-append "Choice ")) - (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) - (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) - (if (= apply TRUE) - (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value)) - - (curves image image-width image-height) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-oldschool-photography-v32" - _"Oldschool Photography" - _"Nawiązanie do fotografii 20-sto lecia międzywojennego" - "PRP" - "Public Domain" - "2025-10-01" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Temperatura (K)" '(5150 1000 10000 100 1000 0 1) - SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) - SF-TOGGLE _"Apply Brightness and Contrast" FALSE - SF-ADJUSTMENT _"Brightness" '(0 -100 100 1 10 0 0) - SF-ADJUSTMENT _"Contrast" '(-30 -100 100 1 10 0 0) - -) - -(script-fu-menu-register "przem-oldschool-photography-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-prussian-blue-effect-v32.scm b/script-fu/3.2/przem-prussian-blue-effect-v32.scm deleted file mode 100644 index 5a26f3c..0000000 --- a/script-fu/3.2/przem-prussian-blue-effect-v32.scm +++ /dev/null @@ -1,93 +0,0 @@ -; przem-prussian-blue-effect-v32 - nieudalna próba nawiązania do efektu cyjanotypii -; author: PRP -; licencja: Public Domain -; Gdańsk - 22-6-2025 -; ver. 2.250712-0~beta - -(define (przem-prussian-blue-effect-v32 img drawable mode black value-blue brightness contrast invert) - - ;(script-fu-use-v3) - - (let* ((gradient-layer 0) - (in-layer (vector-ref drawable 0)) - (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - (gimp-context-set-defaults) - - (if (> (car (gimp-drawable-type in-layer)) 1) - (gimp-image-convert-rgb img)) - ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb - (set! gradient-layer (car (gimp-layer-new img "Prussian Blue" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) RGBA-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-image-insert-layer img gradient-layer 0 -1) - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-context-set-background '(0 0 0)) - - (gimp-drawable-brightness-contrast gradient-layer brightness contrast) - - (gimp-image-insert-channel img mask -1 0) - - (if (= mode 0) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-NORMAL) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 1) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-SUBTRACT) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 2) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-ADDITION) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DARKEN-ONLY) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DIFFERENCE) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 1 - FALSE 1 0 - TRUE - 0 0 0 0))) - - ;(if (= invert TRUE) (gimp-invert gradient-layer)) - - (gimp-layer-set-opacity gradient-layer value-blue) - - (let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) - (gimp-item-set-visible merged-layer TRUE)) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-prussian-blue-effect-v32" - _"Apply prussian blue effect" - _"Nakłada efekt błękitu pruskiego na zdjęcie." - "PRP" - "Public Domain" - "2025-06-22" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION "Mode" '("NORMAL" "SUBTRACT" "ADDITION" "DARKEN-ONLY" "DIFFERENCE") - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-ADJUSTMENT "Blue intensity" '(60 0 100 1 10 0 0) - SF-ADJUSTMENT "Brightness" '(0 -1 1 0.0001 0.0001 2 0) - SF-ADJUSTMENT "Contrast" '(0 -1 1 0.0001 0.0001 2 0) - SF-TOGGLE "Invert" FALSE -) - -(script-fu-menu-register "przem-prussian-blue-effect-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-soft-focus-noninteractive-v32.scm b/script-fu/3.2/przem-soft-focus-noninteractive-v32.scm deleted file mode 100644 index b6940e6..0000000 --- a/script-fu/3.2/przem-soft-focus-noninteractive-v32.scm +++ /dev/null @@ -1,54 +0,0 @@ -; przem-soft-focus-noninteractive-v32.sh - Filtr dodający miękki focus -; 2025-06-19 - PRP -; Public Domain -; ver. 2025-06-19 - -;(define (przem-soft-focus-noninteractive-v3 basout savename) -(define (przem-soft-focus-noninteractive-v32 ask-fileglob) - - (let* ( - (thefiles (cadr (file-glob ask-fileglob 0))) - (baseout (car thefiles)) - (savename (cad thefiles)) - (image (car (gimp-file-load RUN-NONINTERACTIVE baseout savename))) - (selected-layers-array (car (gimp-image-get-selected-layers image))) - (num-selected-layers vector-length selected-layers-array) - ;(width (car (gimp-image-get-width image))) - ;(height (car (gimp-image-get-height image))) - (active-layer 0) - (blur-radius 100) - (opacity 100) - ) - - ;(gimp-message (string-append \"baseout: \" (number->string baseout))) - ;(gimp-message (string-append \"savename: \" (number->string savename))) - - (set! active-layer (vector-ref selected-layers-array (- num-selected-layers 1))) - - - ; Rozmycie Gaussa - ;(plug-in-gauss RUN-NONINTERACTIVE image active-layer blur-radius blur-radius 0) - - (gimp-drawable-merge-new-filter active-layer "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" blur-radius "std-dev-y" 0.0 "filter" "auto") - - ; Zmień tryb mieszania na Overlay lub Screen - (gimp-layer-set-mode active-layer OVERLAY-MODE) - - ; Dostosuj przezroczystość - (gimp-layer-set-opacity active-layer opacity) - ;(gimp-image-merge-down image active-layer CLIP-TO-IMAGE) - - ;(let* ( - ;(merged-layer (car (gimp-image-merge-visible-layers image EXPAND-AS-NECESSARY))) - ;(merged-layer (car (gimp-image-merge-down image active-layer CLIP-TO-IMAGE))) - ;) - ;(file-tiff-save RUN-NONINTERACTIVE image active-layer savename baseout 1) ; 1 - lZW - (gimp-file-save RUN-NONINTERACTIVE image active-layer savename baseout) - - (gimp-image-undo-enable image) - ;) - - - (gimp-image-delete image) - -)) diff --git a/script-fu/3.2/przem-sunset-effect-v32.scm b/script-fu/3.2/przem-sunset-effect-v32.scm deleted file mode 100644 index ba501ae..0000000 --- a/script-fu/3.2/przem-sunset-effect-v32.scm +++ /dev/null @@ -1,103 +0,0 @@ -; przem-sunset-effect-v32 - imituje efekt zachodzącego słońca -; author: PRP -; licencja: Public Domain -; Gdańsk - 01-09-2025 -; ver. 2.250901-0~beta - -(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-sunset-effect-v32 img drawable) - (gimp-image-undo-group-start img) - - ; Tworzenie warstw dla różnych efektów - (let* ( - (layer (vector-ref drawable 0)) - (sunset-layer (car (gimp-layer-copy layer TRUE))) - ;(original-visible (car (gimp-drawable-get-visible drawable))) - (original-visible (car (gimp-layer-copy layer TRUE))) - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - ) - - ; Dodawanie warstwy do obrazu - (gimp-image-insert-layer img sunset-layer 0 -1) - (gimp-layer-set-mode sunset-layer LAYER-MODE-MULTIPLY) - (gimp-item-set-name sunset-layer _"Sunset Effect") - - - ; Nakładanie gradientu ciepłych kolorów - (gimp-context-set-foreground '(255 100 0)) ; pomarańczowy - (gimp-context-set-background '(150 0 50)) ; różowo-czerwony - - ; Tworzenie gradientu - (gimp-layer-set-mode sunset-layer LAYER-MODE-SUBTRACT) ; - (gimp-drawable-edit-gradient-fill sunset-layer - GRADIENT-LINEAR 1 FALSE 1 0 TRUE - 0 0 width height) - - - ; cieplejsze cienie - (gimp-drawable-color-balance sunset-layer TRANSFER-SHADOWS 1 - (shadows (rval '(30 0 -20))) - (shadows (gval '(30 0 -20))) - (shadows (bval '(30 0 -20)))) - - ; cieplejsze średnie tony - (gimp-drawable-color-balance sunset-layer TRANSFER-MIDTONES 1 - (midtones (rval '(40 0 -10))) - (midtones (gval '(40 0 -10))) - (midtones (bval '(40 0 -10)))) - - ; cieplejsze światła - (gimp-drawable-color-balance sunset-layer TRANSFER-HIGHLIGHTS 1 - (highlights (rval '(20 0 -5))) - (highlights (gval '(20 0 -5))) - (highlights (bval '(20 0 -5)))) - - - ; Zwiększenie kontrastu - ;(gimp-levels sunset-layer 0 20 230 1.0 0 255) - (gimp-drawable-levels sunset-layer 0 - 0 0.20 0 TRUE - 1.0 - 0.0 1.0 TRUE) - - ; Dodanie lekkiego rozmycia dla miękkiego efektu - ;(plug-in-gauss-iir 1 img sunset-layer 5 TRUE TRUE) - (gimp-drawable-merge-new-filter sunset-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 5 "std-dev-y" 5 "filter" "auto") - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - ) -) - -(script-fu-register-filter "przem-sunset-effect-v32" - _"Sunset Effect" - _"Imitacja kolorystyki zachodu słońca" - "P.R.P." - "Public Domain" - "2025-09-01" - "*" - SF-ONE-OR-MORE-DRAWABLE) - -(script-fu-menu-register "przem-sunset-effect-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-surreal-v32.scm b/script-fu/3.2/przem-surreal-v32.scm deleted file mode 100644 index c69355f..0000000 --- a/script-fu/3.2/przem-surreal-v32.scm +++ /dev/null @@ -1,98 +0,0 @@ -; przem-surreal-v32 - imitacja surrealistycznych obrazów -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-12-2025 -; ver. 2.260505-0~beta - -(define (przem-surreal-v32 img drawable shades) - (let* ( - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (layer-copy 0) - (source-layer 0) - (green-layer 0) - (type-layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type type-layer))) - (blue-glow (list 102 204 255)) - (blue-pastel (list 153 221 255)) - (blue 0) - ) - - (gimp-context-push) - (gimp-image-undo-group-start img) - - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img) - ) - (set! source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) - (set! layer-copy (car (gimp-layer-copy source-layer))) - - ; Dodajemy skopiowaną warstwę - (gimp-image-insert-layer img layer-copy -1) - - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb img)) - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - - (if (= shades 0) - (begin - (set! blue blue-glow) - )) - (if (= shades 1) - (begin - (set! blue blue-pastel) - )) - - (let* ( - ; ; 3. Tonowanie (niebieska poświata) - (gimp-drawable-merge-new-filter - layer-copy - "gegl:color" - "color-filter" - LAYER-MODE-ADDITION - 0.1 - "value" blue - ) - ) - ) - ; Rozmycie dla efektu mgły - (gimp-drawable-merge-new-filter layer-copy "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" 10.0 "std-dev-y" 10.0 "filter" "auto") - - ; Tryb mieszania: Overlay - (gimp-layer-set-mode layer-copy LAYER-MODE-ADDITION) - (gimp-layer-set-opacity layer-copy 70.0) - - ; Dodajemy zieloną warstwę - (set! green-layer (car (gimp-layer-new img "Green" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - - (gimp-image-insert-layer img green-layer -1) - (gimp-context-set-foreground '(60 120 60)) ; ciemna zieleń - (gimp-drawable-edit-fill green-layer FILL-FOREGROUND) - (gimp-layer-set-mode green-layer LAYER-MODE-MULTIPLY) - (gimp-layer-set-opacity green-layer 25.0) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-surreal-v32" - "_Surreal Toning with Green" - "_Nadaje obrazowi chłodne barwy z zielonymi akcentami i efektem mgły" - "P.R.P" - "Public Domain" - "24-12-2025" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Shades of blue" '("Glow" "Pastel") - -) - -(script-fu-menu-register "przem-surreal-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-teal-portrait-look-v32.scm b/script-fu/3.2/przem-teal-portrait-look-v32.scm deleted file mode 100644 index 9f582ce..0000000 --- a/script-fu/3.2/przem-teal-portrait-look-v32.scm +++ /dev/null @@ -1,166 +0,0 @@ -; przem-teal-portrait-look-v32 - Fotografia portretowa na sterydach -; 2026-04-06 - Przemysław R. Pietraszczyk -; licence: GPL v3 -; ver. 2.260409-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 (saturation layer1) - ; drawable, HUE-Range ( Red, Yellow, Green, Cyan, Blue, Magenta, or All), - ; Hue Offset (-180 180), lightness (-100 100), saturation (-100 100) overlap (0 100) - ; Lekko przygaszona saturacja globalnie - (gimp-drawable-hue-saturation layer1 HUE-RANGE-ALL - 0.0 - 0.0 - -30 - 0.0) - - ;Podbicie cyjanów / zieleni (turkus szalika, chłodniejsze tło) - (gimp-drawable-hue-saturation layer1 HUE-RANGE-CYAN - 5 - 2 - 15 - 0.0) - - (gimp-drawable-hue-saturation layer1 HUE-RANGE-GREEN - 3 - 2 - 10 - 0.0) - - ;Delikatne ocieplenie tonów skóry (czerwienie/żółcie) - (gimp-drawable-hue-saturation layer1 HUE-RANGE-RED - -3 - 2 - 8 - 0.0) - - (gimp-drawable-hue-saturation layer1 HUE-RANGE-YELLOW - -2 - 1 - 6 - 0.0)) - -(define (teal layer2) - (let* ( - ;cyan-red -5, magenta-green 0, yellow-blue +5 - (c1 '(-5 0 5)) - (c2 '(-3 0 3)) - (c3 '(5 0 -3)) - ) - (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 - (shadows (rval c1)) - (shadows (gval c1)) - (shadows (bval c1))) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval c2)) - (midtones (gval c2)) - (midtones (bval c2))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval c3)) - (highlights (gval c3)) - (highlights (bval c3))) - )) - -(define (sand layer2) - (let* ( - ;cyan-red (+) 30 - ;magenta-green (+) 10 - ;yellow-blue (+) 35 - (c2 '(30 10 35)) - (c3 '(20 5 25)) - ) - (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 - (midtones (rval c2)) - (midtones (gval c2)) - (midtones (bval c2))) - (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 - (highlights (rval c3)) - (highlights (gval c3)) - (highlights (bval c3))) - )) - -(define (przem-teal-portrait-look-v32 img drawable mode noise) - - (let* ( - (ref-layer (vector-ref drawable 0)) - (work-layer (car (gimp-layer-copy ref-layer TRUE))) - (color-layer (car (gimp-layer-copy ref-layer TRUE))) - (the-layer 0) - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - (fg-color '(203 182 138)) - ;(fg-color '(217 199 161)) - ) - (gimp-context-push) - (gimp-image-undo-group-start img) - - (if (= noise TRUE) (begin - (gimp-image-insert-layer img noise-layer 0 -1) - (gimp-context-set-foreground fg-color) - (gimp-drawable-fill noise-layer FILL-TRANSPARENT) - (gimp-layer-set-mode noise-layer LAYER-MODE-MULTIPLY))) - - ;(gimp-selection-all img) - (set! the-layer (car (gimp-image-flatten img))) - (gimp-layer-set-opacity the-layer 100) - - (gimp-image-insert-layer img color-layer 0 -1) - (if (= mode 0) (begin - ;; Delikatne przyciemnienie i zwiększenie kontrastu - ;; brightness: -5, contrast: 15 - (gimp-drawable-brightness-contrast the-layer -0.5 0.15) - (teal color-layer))) - (if (= mode 1) (begin - (gimp-drawable-brightness-contrast the-layer 0.10 0.5) - (sand color-layer))) - (gimp-layer-set-opacity color-layer 5) - - (gimp-image-insert-layer img work-layer 0 -1) - (saturation work-layer) - (gimp-layer-set-opacity work-layer 40) - - ;(let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) - ; (gimp-item-set-visible merged-layer TRUE)) - ;(gimp-selection-none img) - - (gimp-image-undo-group-end img) - (gimp-displays-flush) - (gimp-context-pop) - )) - -(script-fu-register-filter "przem-teal-portrait-look-v32" - _"_Teal portrait look" - _"Nadaje zdjęciu miękki portretowy look: lekko przygaszone kolory, podbity turkus, ocieplona skóra, umiarkowany kontrast." - "Przemysław R. Pietraszczyk" - "GPL v3" - "2026-04-06" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION _"Colors Balance" '("TEAL" "SAND") - SF-TOGGLE _"Sand Noise" FALSE -) - -(script-fu-menu-register "przem-teal-portrait-look-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-traditional-photo-v32.scm b/script-fu/3.2/przem-traditional-photo-v32.scm deleted file mode 100644 index e544e50..0000000 --- a/script-fu/3.2/przem-traditional-photo-v32.scm +++ /dev/null @@ -1,69 +0,0 @@ -; przem-traditional-photo-v32 - luźne nawiązanie do chemii tradycyjnej fototgrafii -; author: PRP -; licencja: Public Domain -; Gdańsk - 15-02-2025 -; ver. 2.250217-0~beta for GIMP 3 - - -(define (przem-traditional-photo-v32 image drawable crossing contrast-colors balance-color) - (let ( - ;(the-image (car (gimp-image-duplicate image)) image) - (the-layer 0) - (image-width (car (gimp-image-get-width image))) - (image-height (car (gimp-image-get-height image))) - ) - (gimp-image-undo-group-start image) - - ;(gimp-selection-all the-image) - - (set! the-layer (car (gimp-image-flatten image))) - - (if (= crossing TRUE) - (cross image image-width image-height)) - ;(if (= grain TRUE) - ; (gimp-noise-hurl drawable 1 0.02)) - (if (= contrast-colors TRUE) - ; Zmniejsz kontrast i dodaj kolor - (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) - (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE balance-color 0 -30)) - - ;(gimp-selection-none the-tmage) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) -) ) - -(define (cross image width height) - ; crossing photo - ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) - (let* ((layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) - - (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) - - (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 10 #(0 0 64 90 128 160 192 230 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-RED 10 #(0 0 64 50 128 180 192 230 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-GREEN 10 #(0 0 64 80 128 120 192 200 255 255)) - (gimp-drawable-curves-spline layer HISTOGRAM-BLUE 10 #(0 0 64 30 128 150 192 220 255 255)) - ; lub - ;(define value #(0 0 64 90 128 160 192 230 255 255)) - ;(gimp-drawable-curves-spline drawable HISTOGRAM-VALUE 10 value) - )) -) - -(script-fu-register-filter "przem-traditional-photo-v32" - _"_Convert photographs to neotraditional" - _"Konwertuje na neotradycyjną fotografię" - "Przemyslaw R. Pietraszczyk" - "Public Domain" - "2025-02-15" - "RGB*" - SF-ONE-OR-MORE-DRAWABLE - SF-TOGGLE _"Crossing" FALSE - SF-TOGGLE _"Contrast and Color corection" TRUE - ;SF-ADJUSTMENT _"Contrast" (list -0.15625 -1 1 0.00010 0.00100 0 0) ; źle działa dodanie jako parametru - SF-ADJUSTMENT _"Balance Color" (list -30 -100 100 1 1 0 0) -) - -(script-fu-menu-register "przem-traditional-photo-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-true-cyjanotype-v32.scm b/script-fu/3.2/przem-true-cyjanotype-v32.scm deleted file mode 100644 index 6e83425..0000000 --- a/script-fu/3.2/przem-true-cyjanotype-v32.scm +++ /dev/null @@ -1,99 +0,0 @@ -; przem-true-cyjantype-v32 - imituje efekt prawdziwej cyjanotypii -; author: PRP -; licencja: Public Domain -; Gdańsk - 14-10-2025 -; ver. 2.251104-1 - -(define (przem-true-cyjantype-v32 image drawable black normalize value-blue invert replace tone-curve) - (let* ((gradient-layer 0) - (type-layer (vector-ref drawable 0)) - (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)))) - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type layer))) - (gradient-reverse FALSE) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę - (if (> (car (gimp-drawable-type type-layer)) 1) - (gimp-image-convert-rgb image)) - - ; Konwersja obrazu do skali szarości - (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) - ) - - - ; 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))) - - (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego - (gimp-context-set-background '(0 0 0)) - - (gimp-image-insert-channel image mask -1 0) - - - (gimp-image-insert-layer image gradient-layer 0 -1) - - (gimp-context-set-gradient-reverse gradient-reverse) - (gimp-drawable-edit-gradient-fill gradient-layer - GRADIENT-LINEAR 0 - FALSE 1 0 - TRUE - 0 0 0 0) - (gimp-layer-set-opacity gradient-layer value-blue) - - ; w przeciwieństwie do wer. 2.10 krzywe tonalne działają inaczej - (if (= tone-curve TRUE) - (let* ((curves-layer (car (gimp-layer-copy gradient-layer TRUE))) - ;(gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE 10 #(0 0 32 40 128 140 220 230 255 255)) - ; nie trzeba już deklarować długości vektora - (gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE #(0 0 (/ 32 255) (/ 40 255) (/ 128 255) (/ 140 255) (/ 220 255) (/ 230 255) (/ 255 255) (/ 255 255))) - ) - (gimp-image-insert-layer image curves-layer 0 -1) - (gimp-item-set-visible curves-layer TRUE) - )) - - (if (= invert TRUE) - (gimp-drawable-invert type-layer FALSE)) - - ;(if (= replace TRUE) - ; ; Wybierz tylko czarne piksele - ; (gimp-image-select-color image CHANNEL-OP-REPLACE drawable '(0 0 0)) - - ; ; Wypełnij wybrane obszary kolorem granatowym - ; (gimp-context-set-foreground '(0 0 128)) ; RGB dla granatowego - ; (gimp-edit-bucket-fill drawable BUCKET-FILL-FG LAYER-MODE-NORMAL 100 0 FALSE 0 0) - ; ; Odznacz selekcję - ; (gimp-selection-none image)) - - (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) - (gimp-item-set-visible merged-layer TRUE)) - - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-true-cyjantype-v32" - _"Apply true cyjanotype effect" - _"Pseudo-prawdziwa próba imitacji cyjanotypii" - "Przemysław R. Pietraszczyk" - "Public Domain" - "2025-09-21" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) - SF-TOGGLE "Normalize to 100%" TRUE - SF-ADJUSTMENT "Blue intensity" '(50 0 100 1 10 0 0) - SF-TOGGLE "Invert colors" FALSE - SF-TOGGLE "Replace black" FALSE - SF-TOGGLE "Tone Curve" TRUE - -) - -(script-fu-menu-register "przem-true-cyjantype-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.2/przem-wet-collodion-v32.scm b/script-fu/3.2/przem-wet-collodion-v32.scm deleted file mode 100644 index 4d1373d..0000000 --- a/script-fu/3.2/przem-wet-collodion-v32.scm +++ /dev/null @@ -1,151 +0,0 @@ -; przem-wet-collodion-v32 - imituje efekt mokrego kolodionu -; author: PRP -; licencja: Public Domain -; Gdańsk - 24-08-2025 -; ver. 2.250824-1~beta - -(define (add-hsv-noise img drawable intensity-h intensity-s intensity-v grain) - (let* ( - (width (car (gimp-image-get-width img))) - (height (car (gimp-image-get-height img))) - (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) - ) - - ; Konwertuj do HSV jeśli to konieczne - ;(if (not (= (car (gimp-drawable-is-rgb drawable)) 1)) - ; (gimp-image-convert-rgb img)) - - (gimp-image-insert-layer img noise-layer 0 -1) - (gimp-drawable-fill noise-layer FILL-TRANSPARENT) - - ; Generuj szum - ;(plug-in-solid-noise RUN-NONINTERACTIVE img noise-layer 0 0 (random 1000) 0 4 4) - (let* ((noise-width (cadddr (gimp-drawable-mask-intersect drawable))) - (noise-height (caddr (cddr (gimp-drawable-mask-intersect drawable))))) - - (gimp-drawable-merge-new-filter noise-layer "gegl:noise-solid" 0 LAYER-MODE-REPLACE 1.0 "tileable" FALSE "turbulent" FALSE "seed" (random 100) - "detail" 1 "x-size" 4.0 "y-size" 4.0 - "width" noise-width "height"noise-height)) - - - - ; Ustaw odpowiednie intensywności dla każdego kanału HSV - (let* ( - (h-channel (car (gimp-layer-new img "H Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-HUE))) - (s-channel (car (gimp-layer-new img "S Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-SATURATION))) - (v-channel (car (gimp-layer-new img "V Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-VALUE)))) - - ; Dodaj kanały - (gimp-image-insert-layer img h-channel 0 -1) - (gimp-image-insert-layer img s-channel 0 -1) - (gimp-image-insert-layer img v-channel 0 -1) - - ; Skopiuj szum do każdego kanału - (gimp-edit-copy (vector noise-layer)) - ; czy to potrzebne ? - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste h-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste s-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - - (gimp-edit-copy (vector drawable)) - (let* ( - (pasted (car (gimp-edit-paste v-channel TRUE))) - (num-pasted (vector-length pasted)) - (floating-sel (vector-ref pasted (- num-pasted 1))) - ) - (gimp-layer-set-offsets floating-sel 0 0) - (gimp-floating-sel-anchor floating-sel)) - - (gimp-layer-set-opacity noise-layer 80) - - ; Ustaw przezroczystość dla każdego kanału - (gimp-layer-set-opacity h-channel intensity-h) - (gimp-layer-set-opacity s-channel intensity-s) - (gimp-layer-set-opacity v-channel intensity-v) - - ; Połącz kanały z oryginalnym obrazem - (gimp-image-merge-down img h-channel EXPAND-AS-NECESSARY) - (gimp-image-merge-down img s-channel EXPAND-AS-NECESSARY) - (gimp-image-merge-down img v-channel EXPAND-AS-NECESSARY) - - - ) - ;(gimp-image-remove-layer img noise-layer) - ) -) - - - - -(define (przem-wet-collodion-v32 image drawable mode intensity-h intensity-s intensity-v grain blur) - (let* ( - (layer (vector-ref drawable 0)) - (type (car (gimp-drawable-type-with-alpha layer))) - (width (car (gimp-image-get-width image))) - (height (car (gimp-image-get-height image))) - (mode-blur 0) - ) - (gimp-context-push) - (gimp-image-undo-group-start image) - - ;; Desaturacja - (if (= type RGBA-IMAGE) - (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) - - ;; Dodanie winiety - (let* ((w-layer (car (gimp-layer-copy layer TRUE)))) - (gimp-image-insert-layer image w-layer 0 -1) - (gimp-drawable-merge-new-filter w-layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" 200 "std-dev-y" 200 "filter" "auto") - (gimp-layer-set-mode w-layer LAYER-MODE-MULTIPLY) - (gimp-layer-set-opacity w-layer 60) - ) - - ;; Dodanie szumu - (add-hsv-noise image layer intensity-h intensity-s intensity-v grain) - ;;(plug-in-noisify RUN-NONINTERACTIVE image layer FALSE grain grain grain 0) - - ;; Dodanie lekkiego rozmycia - (if (= mode 0) (begin (set! mode-blur "auto"))) - (if (= mode 1) (begin (set! mode-blur "iir"))) - (if (= mode 2) (begin (set! mode-blur "fir"))) - (gimp-drawable-merge-new-filter layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" blur "std-dev-y" blur "filter" mode-blur) - - (gimp-image-undo-group-end image) - (gimp-displays-flush) - (gimp-context-pop) - ) -) - -(script-fu-register-filter "przem-wet-collodion-v32" - _"Wet Collodion" - _"Imituje efekt mokrego kolodionu" - "PRP" - "Public Domain" - "2025-07-15" - "RGB* GRAY*" - SF-ONE-OR-MORE-DRAWABLE - SF-OPTION "Mode" '("AUTO" "IIR" "FIR") - SF-ADJUSTMENT "Hue Noise Intensity" '(30 0 100 1 10 0 0) - SF-ADJUSTMENT "Saturation Noise Intensity" '(20 0 100 1 10 0 0) - SF-ADJUSTMENT "Value Noise Intensity" '(15 0 100 1 10 0 0) - SF-ADJUSTMENT "Grain" '(0.2 0 1 0.1 0.1 2 0) - SF-ADJUSTMENT "Blur" '(2 0 100 1 10 0 0) -) - -(script-fu-menu-register "przem-wet-collodion-v32" - "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-add-background-under-text-v3x.scm b/script-fu/3.x/przem-add-background-under-text-v3x.scm new file mode 100644 index 0000000..36106d6 --- /dev/null +++ b/script-fu/3.x/przem-add-background-under-text-v3x.scm @@ -0,0 +1,92 @@ +; przem-add-background-under-text-v3x - Script-fu dodający podpis z tłem +; author: PRP +; licencja: Public Domain +; Gdańsk - 06-02-2025 +; ver. 2.260116-1~beta for Gimp 3.0 + +(define (przem-add-background-under-text-v32 image drawable text font font-size fg-color bg-color background-transparency opacity) + + (let* ( + (type-layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type type-layer))) + (image-width (car (gimp-image-get-width image))) + (image-height (car (gimp-image-get-height image))) + (text-extents (gimp-text-get-extents-font text font-size font)) + (text-width (car text-extents)) + (text-height (cadr text-extents)) + (pos-x (- (- image-width text-width) 40)) + (pos-y (- image-height text-height)) + (bg-x-left (- pos-x 10)) + (bg-x-right (+ text-width 10)) + (text-layer 0) + (bg-layer 0) + ) + + (gimp-context-push) + (gimp-image-undo-group-start image) + + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb image) + ) + + ; Ustawienie koloru tła + (gimp-context-set-background bg-color) + (gimp-context-set-foreground fg-color) + + (set! bg-layer (car (gimp-layer-new image "Background" bg-x-right text-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) + + (gimp-drawable-fill bg-layer FILL-BACKGROUND) + (gimp-layer-set-opacity bg-layer opacity) + + ; Dodanie warstwy tła pod tekstem + (gimp-image-insert-layer image bg-layer 0 -1) + + ;(gimp-layer-translate bg-layer bg-x-left pos-y) + ;(gimp-selection-translate image bg-layer bg-x-left pos-y) + (gimp-layer-set-offsets bg-layer bg-x-left pos-y) + (if (= background-transparency TRUE) + (begin + (gimp-drawable-fill bg-layer FILL-TRANSPARENT) + ) + (begin ; else + ) + ) + (set! text-layer (car(gimp-text-font image -1 0 0 text 0 TRUE font-size font))) + + ; Ustawienie pozycji tekstu + (gimp-layer-set-offsets text-layer pos-x pos-y) + + ; Przesuń warstwę tekstową na górę stosu warstw + (gimp-image-raise-item-to-top image text-layer) + + ; Scalanie warstw + (gimp-image-merge-down image text-layer CLIP-TO-IMAGE) + + (gimp-image-undo-group-end image) ; Zakończ grupę operacji undo + + ; Aktualizacja widoku + (gimp-displays-flush) + (gimp-context-pop) + + ) +) + +(script-fu-register-filter "przem-add-background-under-text-v32" + _"Add Background Under Text" + _"Dodaje kolorowe tło pod tekstem z możliwością wyboru czcionki i rozmiaru." + "Przemysław R. Pietraszczyk" + "Public Domain" + "2025-02-06" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-STRING "Text" "Doda Elektroda" + SF-FONT "Font" "Monospace" + SF-ADJUSTMENT "Font Size" (list 50 1 1000 1 10 0 1) + SF-COLOR "Foreground Color" (list 100 100 100) + SF-COLOR "Background Color" (list 255 215 0) + SF-TOGGLE "Background Transparency" FALSE + SF-ADJUSTMENT "Transparency Value" (list 100 1 100 1 10 0 1) +) + +(script-fu-menu-register "przem-add-background-under-text-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-apply-sepia-v3x.scm b/script-fu/3.x/przem-apply-sepia-v3x.scm new file mode 100644 index 0000000..d02724f --- /dev/null +++ b/script-fu/3.x/przem-apply-sepia-v3x.scm @@ -0,0 +1,148 @@ +; przem-apply-sepia-v3x - Script-fu dodający prawdziwą sepie do zdjęcia +; author: PRP +; licencja: GPL v3 +; Gdańsk - 07-02-2025 +; ver. 2.260116-1~beta for GIMP 3 +; +; This program is free software: you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 3 of the License, or +; (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program. If not, see . +; + +(define (przem-apply-sepia-v32 image drawable value-slider-sepia shadow-sepia gradient-reverse in-sepia gradient-shape) + (let* ( + (image-width (car (gimp-image-get-width image))) + (image-height (car (gimp-image-get-height image))) + (layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type layer))) + (center-x (/ image-width 2)) + (center-y (/ image-height 2)) + (radius (sqrt (+ (* center-x center-x) (* center-y center-y)))) + (the-layer 0) + ) + (gimp-context-push) + (gimp-image-undo-group-start image) + + + (if (> (car (gimp-drawable-type layer)) 1) + (gimp-image-convert-rgb image) + ) + + (if (= type RGB-IMAGE) + (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS) + ) + + (gimp-selection-all image) + (set! the-layer (car (gimp-image-flatten image))) + + (if (= in-sepia TRUE) + (begin (gimp-drawable-desaturate the-layer DESATURATE-LIGHTNESS) + (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) + (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE 30 0 -30) + ) + ) + + (let ( + (sepia-layer (car (gimp-layer-new image "Sepia" image-width image-height RGB-IMAGE 100 LAYER-MODE-NORMAL))) + ) + + (gimp-context-set-foreground '(112 66 20)) ; sepia ciemniejszy + (gimp-context-set-background '(233 213 186)) ; sepia jasniejszy + ;(gimp-context-set-background '(210 180 140)) ; sepia jasniejsza + + ; Dodanie koloru sepii + (gimp-image-insert-layer image sepia-layer 0 -1) + + (gimp-context-push) + + ;(plug-in-checkerboard #:run-mode RUN-NONINTERACTIVE + ; #:image image + ; #:drawables (vector drawable) + ; #:psychobilly 0 + ; #:check-size 8) + (plug-in-checkerboard RUN-NONINTERACTIVE image (vector sepia-layer) 0 8) + + (gimp-context-pop) + + (gimp-context-push) + + ;(gimp-selection-all image) + ; tak było w v. 2.10 + ;(gimp-edit-blend sepia-layer FG-BG-RGB-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE TRUE 3 0 TRUE 0 0 image-width image-height) + (gimp-context-set-gradient-fg-bg-rgb) + (if (= gradient-shape 1) + (begin + (gimp-context-set-gradient-reverse gradient-reverse) + (gimp-drawable-edit-gradient-fill sepia-layer + GRADIENT-LINEAR (- 100 shadow-sepia) + FALSE 1 0 + TRUE + 0 0 image-width image-height) + ) ) + (if (= gradient-shape 2) + (begin + (gimp-context-set-gradient-reverse gradient-reverse) + (gimp-drawable-edit-gradient-fill sepia-layer + GRADIENT-SHAPEBURST-DIMPLED (- 100 shadow-sepia) + FALSE 1 0 + TRUE + 0 0 center-x center-y) + ) + ) + (if (= gradient-shape 0) + (begin + (gimp-context-set-gradient-reverse gradient-reverse) + (gimp-drawable-edit-gradient-fill sepia-layer + GRADIENT-BILINEAR (- 100 shadow-sepia) + FALSE 1 0 + TRUE + (/ (+ (* 2 center-x) center-y -1) 2) 0 + 0 0) + ) + ) + + ; Zmiana krycia warstwy + (gimp-layer-set-opacity sepia-layer value-slider-sepia) + + (gimp-image-merge-down image sepia-layer CLIP-TO-IMAGE) + ) ; let + (gimp-selection-none image) + + + (gimp-image-undo-group-end image) + ;(gimp-image-undo-enable image) + + (gimp-displays-flush) + (gimp-context-pop) + +) ) + +(script-fu-register-filter "przem-apply-sepia-v32" + _"_Apply a sepia effect to the image" + _"Tworzy obraz sepii" + "Przemyslaw R. Pietraszczyk" + "GPL v3" + "2025-02-07" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT _"Sepia intensity" '(50 0 100 1 10 0 0) ; Suwak poziomy + SF-ADJUSTMENT _"Shadow Sepia" '(30 0 100 1 10 0 0) ; Suwak poziomy + SF-TOGGLE _"Gradient reverse" FALSE + SF-TOGGLE _"Sepia" TRUE + SF-OPTION _"Shape" '("Bilinear" "Linear" "Shapeburst") + + + +) + +(script-fu-menu-register "przem-apply-sepia-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-cyanotype-color-effect-multi-v3x.scm b/script-fu/3.x/przem-cyanotype-color-effect-multi-v3x.scm new file mode 100644 index 0000000..3599623 --- /dev/null +++ b/script-fu/3.x/przem-cyanotype-color-effect-multi-v3x.scm @@ -0,0 +1,58 @@ +; przem-cyanotype-color-effect-multi-v3x - Efekty cyjanotypi na kolor +; author: PRP +; licencja: Public Domain +; Gdańsk - 24-08-2025 +; ver. 2.250824-2 + +(define (przem-cyanotype-color-effect-multi-v32 img drawable black blue) + + (gimp-context-push) + (gimp-image-undo-group-start img) + + ; Cyjanotypia (zostaw tylko niebieski kanał) + (let* ( + (layer (vector-ref drawable 0)) + ;(type (car (gimp-drawable-type-with-alpha cyan-layer))) + (type (car (gimp-drawable-type-with-alpha (car (gimp-layer-copy (vector-ref drawable 0)))))) + + ;(cyan-layer (car (gimp-layer-copy drawable TRUE))) + (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) + ) + (if (> (car (gimp-drawable-type layer)) 1) + (gimp-image-convert-rgb img)) + + ;; Desaturacja + ;(if (= type RGBA-IMAGE) + ;(gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) + + (let* ( + (cyan-layer (car (gimp-layer-copy (vector-ref drawable 0)))) + ) + (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego + (gimp-image-insert-layer img cyan-layer 0 -1) + (gimp-item-set-name cyan-layer "Cyanotype") + (gimp-layer-set-mode cyan-layer LAYER-MODE-SCREEN) ; Tryb mieszania: Screen + ) + ;(gimp-hue-saturation cyan-layer 0 blue 50 0) + (gimp-image-insert-channel img mask -1 0) + ) + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + (gimp-context-pop)) + + +(script-fu-register-filter "przem-cyanotype-color-effect-multi-v32" + _"Add Cyanotype Color Multi..." + _"Efekty cyjanotypii na kolor" + "PRP" + "Public Domain" + "2025-08-24" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) + SF-ADJUSTMENT "Pastel blue" '(40 30 70 1 10 1 0)) + +(script-fu-menu-register "przem-cyanotype-color-effect-multi-v32" + "/Filters/PIETRASZCZYK/") + diff --git a/script-fu/3.x/przem-hitchcock-d400-film-effect-v3x.scm b/script-fu/3.x/przem-hitchcock-d400-film-effect-v3x.scm new file mode 100644 index 0000000..879285b --- /dev/null +++ b/script-fu/3.x/przem-hitchcock-d400-film-effect-v3x.scm @@ -0,0 +1,72 @@ +; przem-hitchcock-d400-film-effect-v3x - Imitacja filmu chińskiego HITCHOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom +; author: PRP +; licencja: Public Domain +; Gdańsk - 14-06-2026 +; ver. 2.260615-0 + +(define (przem-hitchcock-d400-film-effect-v3 image drawable + contrast + lift-blacks + warm-highlights + cool-shadows + bloom-strength) + (gimp-context-push) + (gimp-image-undo-group-start image) + + ;; Duplikat warstwy bazowej + (let* ( + (type-layer (vector-ref drawable 0)) + (layer (vector-ref drawable 0)) + (work-layer (car (gimp-layer-copy layer TRUE))) + (bloom-layer 0) + ) + + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb image) + ) + + (gimp-image-insert-layer image work-layer 0 -1) + + + (let* ((finish-layer (car (gimp-layer-copy layer TRUE))) + (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 10 #( 0 lift-blacks 64 (+ 48 contrast) 128 128 192 (- 208 contrast) 255 255)) + (gimp-layer-set-opacity finish-layer 40) + + )) + + ;; 2. Ciepłe światła – Color Balance (midtones + highlights) + ; cyan-red - magenta-green - yellow-blue (ujemne = więcej żółtego, dodatnie = więcej niebieskiego) + (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS FALSE 0 0 cool-shadows) + (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES FALSE warm-highlights 0 (- warm-highlights)) + (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS FALSE warm-highlights 0 (- warm-highlights)) + + ;; 3. Delikatny bloom / glow (kopiujemy warstwę, rozmywamy, Soft light) + (set! bloom-layer (car (gimp-layer-copy layer TRUE))) + (gimp-image-insert-layer image bloom-layer 0 -1) + (gimp-layer-set-mode bloom-layer LAYER-MODE-SUBTRACT) + (gimp-drawable-merge-new-filter bloom-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 8.0 "std-dev-y" 8.0 "filter" "iir") + (gimp-layer-set-opacity bloom-layer bloom-strength) + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-hitchcock-d400-film-effect-v3" + _"Hitchock d400 effect" + _"Imitacja filmu chińskiego HITCHCOCK D400: kontrast, ciepłe światła, chłodne cienie, bloom." + _"P.R.P" + "Public Domain" + "2026-06-14" + "*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT "Kontrast (0–80)" '(40 0 80 1 5 0 1) + SF-ADJUSTMENT "Black up (0–40)" '(12 0 40 1 5 0 1) + SF-ADJUSTMENT "Warm lights (–50 do 50)" '(15 -50 50 1 5 0 1) + SF-ADJUSTMENT "Cool shadows (–50 do 50)" '(-10 -50 50 1 5 0 1) + SF-ADJUSTMENT "Bloom – power (0–100)" '(35 0 100 1 5 0 1) +) + +(script-fu-menu-register "przem-hitchcock-d400-film-effect-v3" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-ilford-expired-v3x.scm b/script-fu/3.x/przem-ilford-expired-v3x.scm new file mode 100644 index 0000000..39d74b7 --- /dev/null +++ b/script-fu/3.x/przem-ilford-expired-v3x.scm @@ -0,0 +1,144 @@ +; przem-ilford-expired-v3x - Fotografia imitująca przeterminowany film Ilforda +; 2025-10-05 - Przemysław R. Pietraszczyk +; licence: Public Domain +; ver. 2.251006-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) + + (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 + (shadows (rval hc)) + (shadows (gval hc)) + (shadows (bval hc))) + (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 + (midtones (rval hc)) + (midtones (gval hc)) + (midtones (bval hc))) + (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 + (highlights (rval hc)) + (highlights (gval hc)) + (highlights (bval hc))) + + (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 + (shadows (rval cc)) + (shadows (gval cc)) + (shadows (bval cc))) + (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 + (midtones (rval cc)) + (midtones (gval cc)) + (midtones (bval cc))) + (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 + (highlights (rval cc)) + (highlights (gval cc)) + (highlights (bval cc))) + + (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL + 0.0 + lightness + saturation + 0.0)) + + + +(define (przem-ilford-expired-v32 image drawable temperature strength apply brightness contrast saturation lightness hc cc) + + ; use v3 binding of return args from PDB + ;(script-fu-use-v3) + + (let* ( + (temperature-factor (/ (- temperature 6500) 1000)) + (red-adjust (* temperature-factor (- strength))) + (blue-adjust (* temperature-factor strength)) + (brightness-value (/ brightness 100)) + (contrast-value (/ contrast 100)) + (layer (vector-ref drawable 0)) + (work-layer (car (gimp-layer-copy layer TRUE))) + (work-layer-second (car (gimp-layer-copy layer TRUE))) + (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) + (image-width (car (gimp-image-get-width image))) + (image-height (car (gimp-image-get-height image))) + ) + + (gimp-image-undo-group-start image) + (gimp-context-push) + + (gimp-image-insert-layer image work-layer 0 -1) + (gimp-image-insert-layer image work-layer-second 0 -1) + + (if (= apply TRUE) + (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) + + ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu + ; (gimp-message (string-append "Choice ")) + (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) + (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) + (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) + (if (= apply TRUE) + (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value) + (gimp-layer-set-opacity work-layer-brightness-contrast 40)) + + (apply-quick-tint image work-layer work-layer-second image-width image-height saturation lightness hc cc) + (gimp-layer-set-opacity work-layer 40) + + (let* ((finish-layer (car (gimp-layer-copy work-layer-brightness-contrast TRUE))) + (gimp-drawable-curves-spline finish-layer HISTOGRAM-VALUE 8 #(0 0 24 22 129 138 255 255)) + (gimp-layer-set-opacity finish-layer 40) + + )) + (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) + ;(gimp-image-merge-visible-layers image CLIP-TO-IMAGE) + (gimp-item-set-visible merged-layer TRUE)) + + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-ilford-expired-v32" + _"Ilford film expired" + _"Fotografia imitująca przeterminowany film Ilforda" + "Przemysław R. Pietraszczyk" + "Public Domain" + "2025-10-05" + "RGB*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT "Temperatura (K)" '(5550 1000 10000 100 1000 0 1) + SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) + SF-TOGGLE _"Apply Brightness and Contrast" FALSE + SF-ADJUSTMENT _"Brightness" '(1 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Contrast" '(5 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Saturation" '(5 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Lightness" '(-35 -100 100 1 10 0 0) + SF-COLOR _"Highlight balance" '(211 95 0) + SF-COLOR _"Chrome balance" "black" + +) + +(script-fu-menu-register "przem-ilford-expired-v32" + "/Filters/PIETRASZCZYK/") + diff --git a/script-fu/3.x/przem-kodachrome-v3x.scm b/script-fu/3.x/przem-kodachrome-v3x.scm new file mode 100644 index 0000000..997eb17 --- /dev/null +++ b/script-fu/3.x/przem-kodachrome-v3x.scm @@ -0,0 +1,159 @@ +; przem-kodachrome-v3x - Fotografia z okresu 20-sto lecia między wojennego +; 2025-09-25 - Przemysław R. Pietraszczyk +; licence: Public Domain +; ver. 2.250929-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 (apply-quick-tint img layer1 layer2 width height saturation lightness hc cc) + + (gimp-drawable-color-balance layer1 TRANSFER-SHADOWS 1 + (shadows (rval hc)) + (shadows (gval hc)) + (shadows (bval hc))) + (gimp-drawable-color-balance layer1 TRANSFER-MIDTONES 1 + (midtones (rval hc)) + (midtones (gval hc)) + (midtones (bval hc))) + (gimp-drawable-color-balance layer1 TRANSFER-HIGHLIGHTS 1 + (highlights (rval hc)) + (highlights (gval hc)) + (highlights (bval hc))) + + (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 + (shadows (rval cc)) + (shadows (gval cc)) + (shadows (bval cc))) + (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 + (midtones (rval cc)) + (midtones (gval cc)) + (midtones (bval cc))) + (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 + (highlights (rval cc)) + (highlights (gval cc)) + (highlights (bval cc))) + + (gimp-drawable-hue-saturation layer2 HUE-RANGE-ALL + 0.0 + lightness + saturation + 0.0)) + +(define (create-highlights-curve adjustment) + (let ((curve-data (make-vector 256 'byte))) + (do ((i 0 (+ i 1))) + ((= i 256)) + (if (> i 128) + ; Światła - zastosuj regulację + (aset curve-data i (min 255 (max 0 (+ i (* (- i 128) adjustment))))) + ; Cienie - bez zmian + (aset curve-data i i) + ) + ) + curve-data + ) +) + +(define (create-shadows-curve adjustment) + (let ((curve-data (make-vector 256 'byte))) + (do ((i 0 (+ i 1))) + ((= i 256)) + (if (< i 128) + ; Cienie - zastosuj regulację + (aset curve-data i (min 255 (max 0 (+ i (* i adjustment))))) + ; Światła - bez zmian + (aset curve-data i i) + ) + ) + curve-data + ) +) + +;(define (przem-oldschool-photogrphy-v3 image drawable temperature strength tint-use +; brightness contrast highlights shadows whites blacks saturation lightness hc cc) +(define (przem-kodachrome-v32 image drawable highlights shadows saturation lightness hc cc) + + ; use v3 binding of return args from PDB + ;(script-fu-use-v3) + + (let* ( + ;(temperature-factor (/ (- temperature 6500) 1000)) + ;(red-adjust (* temperature-factor (- strength))) + ;(blue-adjust (* temperature-factor strength)) + ;(brightness-value (/ brightness 100)) + ;(contrast-value (/ contrast 100)) + (adjust-value-highlights (/ highlights 100)) + (adjust-value-shadow (/ shadows 100)) + (width (car (gimp-image-get-width image))) + (height (car (gimp-image-get-height image))) + (layer (vector-ref drawable 0)) + (work-layer (car (gimp-layer-copy layer TRUE))) + (work-layer-second (car (gimp-layer-copy layer TRUE))) + ;(work-layer-levels (car (gimp-layer-copy layer TRUE))) + ;(work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) + (curves-layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) + (blacks 1) + (whites 0) + ) + (gimp-image-undo-group-start image) + (gimp-context-push) + + (gimp-image-insert-layer image work-layer 0 -1) + (gimp-image-insert-layer image work-layer-second 0 -1) + + (apply-quick-tint image work-layer work-layer-second width height saturation lightness hc cc) + + ; Regulacja przez poziomy + ; low imput - high input - gamma - output range + (gimp-drawable-levels work-layer 0 + blacks + whites + 1.0 1.0 1.0 0 0) + + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-kodachrome-v32" + _"Kodachrome" + _"Imitacja Kodachrome" + "PRP" + "Public Domain" + "2025-09-25" + "RGB*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT _"Highlights" '(-80 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Shadow" '(30 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Saturation" '(-80 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Lightness" '(24 -100 100 1 10 0 0) + SF-COLOR _"Highlight balance" '(211 95 0) + SF-COLOR _"Chrome balance" "black" +) + +(script-fu-menu-register "przem-kodachrome-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-oldschool-photography-v3x.scm b/script-fu/3.x/przem-oldschool-photography-v3x.scm new file mode 100644 index 0000000..ba0086b --- /dev/null +++ b/script-fu/3.x/przem-oldschool-photography-v3x.scm @@ -0,0 +1,75 @@ +; przem-oldschool-photography-v3x - Fotografia z okresu 20-sto lecia między wojennego +; 2025-10-01 - Przemysław R. Pietraszczyk +; licence: Public Domain +; ver. 2.251001-0 + + + +(define (curves image width height) + ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) + (let* ((layer (gimp-layer-new image "Curves" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) + (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) + (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 12 #(0 0 51 45 102 95 153 158 204 209 255 255)) + )) +) + + +(define (przem-oldschool-photography-v32 image drawable temperature strength apply brightness contrast) + + ; use v3 binding of return args from PDB + ;(script-fu-use-v3) + + (let* ( + (temperature-factor (/ (- temperature 6500) 1000)) + (red-adjust (* temperature-factor (- strength))) + (blue-adjust (* temperature-factor strength)) + (brightness-value (/ brightness 100)) + (contrast-value (/ contrast 100)) + (layer (vector-ref drawable 0)) + (work-layer (car (gimp-layer-copy layer TRUE))) + (work-layer-brightness-contrast (car (gimp-layer-copy layer TRUE))) + (image-width (car (gimp-image-get-width image))) + (image-height (car (gimp-image-get-height image))) + ) + + (gimp-image-undo-group-start image) + (gimp-context-push) + + (gimp-image-insert-layer image work-layer 0 -1) + (if (= apply TRUE) + (gimp-image-insert-layer image work-layer-brightness-contrast 0 -1)) + + ; Balans kolorów na podstawie temp. barwowej z kontrolą siły efektu + ; (gimp-message (string-append "Choice ")) + (gimp-drawable-color-balance work-layer TRANSFER-SHADOWS TRUE red-adjust 0 blue-adjust) + (gimp-drawable-color-balance work-layer TRANSFER-MIDTONES TRUE red-adjust 0 blue-adjust) + (gimp-drawable-color-balance work-layer TRANSFER-HIGHLIGHTS TRUE red-adjust 0 blue-adjust) + (if (= apply TRUE) + (gimp-drawable-brightness-contrast work-layer-brightness-contrast brightness-value contrast-value)) + + (curves image image-width image-height) + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-oldschool-photography-v32" + _"Oldschool Photography" + _"Nawiązanie do fotografii 20-sto lecia międzywojennego" + "PRP" + "Public Domain" + "2025-10-01" + "RGB*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT "Temperatura (K)" '(5150 1000 10000 100 1000 0 1) + SF-ADJUSTMENT "Siła efektu" '(1.0 0.1 3.0 0.1 0.5 1 0) + SF-TOGGLE _"Apply Brightness and Contrast" FALSE + SF-ADJUSTMENT _"Brightness" '(0 -100 100 1 10 0 0) + SF-ADJUSTMENT _"Contrast" '(-30 -100 100 1 10 0 0) + +) + +(script-fu-menu-register "przem-oldschool-photography-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-prussian-blue-effect-v3x.scm b/script-fu/3.x/przem-prussian-blue-effect-v3x.scm new file mode 100644 index 0000000..bd6c972 --- /dev/null +++ b/script-fu/3.x/przem-prussian-blue-effect-v3x.scm @@ -0,0 +1,93 @@ +; przem-prussian-blue-effect-v3x - nieudalna próba nawiązania do efektu cyjanotypii +; author: PRP +; licencja: Public Domain +; Gdańsk - 22-6-2025 +; ver. 2.250712-0~beta + +(define (przem-prussian-blue-effect-v32 img drawable mode black value-blue brightness contrast invert) + + ;(script-fu-use-v3) + + (let* ((gradient-layer 0) + (in-layer (vector-ref drawable 0)) + (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)))) + ) + (gimp-context-push) + (gimp-image-undo-group-start img) + (gimp-context-set-defaults) + + (if (> (car (gimp-drawable-type in-layer)) 1) + (gimp-image-convert-rgb img)) + ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb + (set! gradient-layer (car (gimp-layer-new img "Prussian Blue" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) RGBA-IMAGE 100 LAYER-MODE-NORMAL))) + + (gimp-image-insert-layer img gradient-layer 0 -1) + (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego + (gimp-context-set-background '(0 0 0)) + + (gimp-drawable-brightness-contrast gradient-layer brightness contrast) + + (gimp-image-insert-channel img mask -1 0) + + (if (= mode 0) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-NORMAL) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 1 + FALSE 1 0 + TRUE + 0 0 0 0))) + (if (= mode 1) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-SUBTRACT) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 1 + FALSE 1 0 + TRUE + 0 0 0 0))) + (if (= mode 2) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-ADDITION) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 1 + FALSE 1 0 + TRUE + 0 0 0 0))) + (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DARKEN-ONLY) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 1 + FALSE 1 0 + TRUE + 0 0 0 0))) + (if (= mode 3) (begin (gimp-layer-set-mode gradient-layer LAYER-MODE-DIFFERENCE) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 1 + FALSE 1 0 + TRUE + 0 0 0 0))) + + ;(if (= invert TRUE) (gimp-invert gradient-layer)) + + (gimp-layer-set-opacity gradient-layer value-blue) + + (let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) + (gimp-item-set-visible merged-layer TRUE)) + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-prussian-blue-effect-v32" + _"Apply prussian blue effect" + _"Nakłada efekt błękitu pruskiego na zdjęcie." + "PRP" + "Public Domain" + "2025-06-22" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-OPTION "Mode" '("NORMAL" "SUBTRACT" "ADDITION" "DARKEN-ONLY" "DIFFERENCE") + SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) + SF-ADJUSTMENT "Blue intensity" '(60 0 100 1 10 0 0) + SF-ADJUSTMENT "Brightness" '(0 -1 1 0.0001 0.0001 2 0) + SF-ADJUSTMENT "Contrast" '(0 -1 1 0.0001 0.0001 2 0) + SF-TOGGLE "Invert" FALSE +) + +(script-fu-menu-register "przem-prussian-blue-effect-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-soft-focus-noninteractive-v3x.scm b/script-fu/3.x/przem-soft-focus-noninteractive-v3x.scm new file mode 100644 index 0000000..619a9e1 --- /dev/null +++ b/script-fu/3.x/przem-soft-focus-noninteractive-v3x.scm @@ -0,0 +1,54 @@ +; przem-soft-focus-noninteractive-v3x.scm - Filtr dodający miękki focus +; 2025-06-19 - PRP +; Public Domain +; ver. 2025-06-19 + +;(define (przem-soft-focus-noninteractive-v3 basout savename) +(define (przem-soft-focus-noninteractive-v32 ask-fileglob) + + (let* ( + (thefiles (cadr (file-glob ask-fileglob 0))) + (baseout (car thefiles)) + (savename (cad thefiles)) + (image (car (gimp-file-load RUN-NONINTERACTIVE baseout savename))) + (selected-layers-array (car (gimp-image-get-selected-layers image))) + (num-selected-layers vector-length selected-layers-array) + ;(width (car (gimp-image-get-width image))) + ;(height (car (gimp-image-get-height image))) + (active-layer 0) + (blur-radius 100) + (opacity 100) + ) + + ;(gimp-message (string-append \"baseout: \" (number->string baseout))) + ;(gimp-message (string-append \"savename: \" (number->string savename))) + + (set! active-layer (vector-ref selected-layers-array (- num-selected-layers 1))) + + + ; Rozmycie Gaussa + ;(plug-in-gauss RUN-NONINTERACTIVE image active-layer blur-radius blur-radius 0) + + (gimp-drawable-merge-new-filter active-layer "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" blur-radius "std-dev-y" 0.0 "filter" "auto") + + ; Zmień tryb mieszania na Overlay lub Screen + (gimp-layer-set-mode active-layer OVERLAY-MODE) + + ; Dostosuj przezroczystość + (gimp-layer-set-opacity active-layer opacity) + ;(gimp-image-merge-down image active-layer CLIP-TO-IMAGE) + + ;(let* ( + ;(merged-layer (car (gimp-image-merge-visible-layers image EXPAND-AS-NECESSARY))) + ;(merged-layer (car (gimp-image-merge-down image active-layer CLIP-TO-IMAGE))) + ;) + ;(file-tiff-save RUN-NONINTERACTIVE image active-layer savename baseout 1) ; 1 - lZW + (gimp-file-save RUN-NONINTERACTIVE image active-layer savename baseout) + + (gimp-image-undo-enable image) + ;) + + + (gimp-image-delete image) + +)) diff --git a/script-fu/3.x/przem-sunset-effect-v3x.scm b/script-fu/3.x/przem-sunset-effect-v3x.scm new file mode 100644 index 0000000..9e38a17 --- /dev/null +++ b/script-fu/3.x/przem-sunset-effect-v3x.scm @@ -0,0 +1,103 @@ +; przem-sunset-effect-v3x - imituje efekt zachodzącego słońca +; author: PRP +; licencja: Public Domain +; Gdańsk - 01-09-2025 +; ver. 2.250901-0~beta + +(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-sunset-effect-v32 img drawable) + (gimp-image-undo-group-start img) + + ; Tworzenie warstw dla różnych efektów + (let* ( + (layer (vector-ref drawable 0)) + (sunset-layer (car (gimp-layer-copy layer TRUE))) + ;(original-visible (car (gimp-drawable-get-visible drawable))) + (original-visible (car (gimp-layer-copy layer TRUE))) + (width (car (gimp-image-get-width img))) + (height (car (gimp-image-get-height img))) + ) + + ; Dodawanie warstwy do obrazu + (gimp-image-insert-layer img sunset-layer 0 -1) + (gimp-layer-set-mode sunset-layer LAYER-MODE-MULTIPLY) + (gimp-item-set-name sunset-layer _"Sunset Effect") + + + ; Nakładanie gradientu ciepłych kolorów + (gimp-context-set-foreground '(255 100 0)) ; pomarańczowy + (gimp-context-set-background '(150 0 50)) ; różowo-czerwony + + ; Tworzenie gradientu + (gimp-layer-set-mode sunset-layer LAYER-MODE-SUBTRACT) ; + (gimp-drawable-edit-gradient-fill sunset-layer + GRADIENT-LINEAR 1 FALSE 1 0 TRUE + 0 0 width height) + + + ; cieplejsze cienie + (gimp-drawable-color-balance sunset-layer TRANSFER-SHADOWS 1 + (shadows (rval '(30 0 -20))) + (shadows (gval '(30 0 -20))) + (shadows (bval '(30 0 -20)))) + + ; cieplejsze średnie tony + (gimp-drawable-color-balance sunset-layer TRANSFER-MIDTONES 1 + (midtones (rval '(40 0 -10))) + (midtones (gval '(40 0 -10))) + (midtones (bval '(40 0 -10)))) + + ; cieplejsze światła + (gimp-drawable-color-balance sunset-layer TRANSFER-HIGHLIGHTS 1 + (highlights (rval '(20 0 -5))) + (highlights (gval '(20 0 -5))) + (highlights (bval '(20 0 -5)))) + + + ; Zwiększenie kontrastu + ;(gimp-levels sunset-layer 0 20 230 1.0 0 255) + (gimp-drawable-levels sunset-layer 0 + 0 0.20 0 TRUE + 1.0 + 0.0 1.0 TRUE) + + ; Dodanie lekkiego rozmycia dla miękkiego efektu + ;(plug-in-gauss-iir 1 img sunset-layer 5 TRUE TRUE) + (gimp-drawable-merge-new-filter sunset-layer "gegl:gaussian-blur" 1 LAYER-MODE-REPLACE 1.0 "std-dev-x" 5 "std-dev-y" 5 "filter" "auto") + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + ) +) + +(script-fu-register-filter "przem-sunset-effect-v32" + _"Sunset Effect" + _"Imitacja kolorystyki zachodu słońca" + "P.R.P." + "Public Domain" + "2025-09-01" + "*" + SF-ONE-OR-MORE-DRAWABLE) + +(script-fu-menu-register "przem-sunset-effect-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-surreal-v3x.scm b/script-fu/3.x/przem-surreal-v3x.scm new file mode 100644 index 0000000..e5d8083 --- /dev/null +++ b/script-fu/3.x/przem-surreal-v3x.scm @@ -0,0 +1,98 @@ +; przem-surreal-v3x - imitacja surrealistycznych obrazów +; author: PRP +; licencja: Public Domain +; Gdańsk - 24-12-2025 +; ver. 2.260505-0~beta + +(define (przem-surreal-v32 img drawable shades) + (let* ( + (width (car (gimp-image-get-width img))) + (height (car (gimp-image-get-height img))) + (layer-copy 0) + (source-layer 0) + (green-layer 0) + (type-layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type type-layer))) + (blue-glow (list 102 204 255)) + (blue-pastel (list 153 221 255)) + (blue 0) + ) + + (gimp-context-push) + (gimp-image-undo-group-start img) + + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb img) + ) + (set! source-layer (vector-ref (car (gimp-image-get-layers img)) 0 )) + (set! layer-copy (car (gimp-layer-copy source-layer))) + + ; Dodajemy skopiowaną warstwę + (gimp-image-insert-layer img layer-copy -1) + + ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb img)) + + ; Konwersja obrazu do skali szarości + (if (= type RGB-IMAGE) + (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) + ) + + (if (= shades 0) + (begin + (set! blue blue-glow) + )) + (if (= shades 1) + (begin + (set! blue blue-pastel) + )) + + (let* ( + ; ; 3. Tonowanie (niebieska poświata) + (gimp-drawable-merge-new-filter + layer-copy + "gegl:color" + "color-filter" + LAYER-MODE-ADDITION + 0.1 + "value" blue + ) + ) + ) + ; Rozmycie dla efektu mgły + (gimp-drawable-merge-new-filter layer-copy "gegl:gaussian-blur" RUN-NONINTERACTIVE LAYER-MODE-REPLACE 1.0 "std-dev-x" 10.0 "std-dev-y" 10.0 "filter" "auto") + + ; Tryb mieszania: Overlay + (gimp-layer-set-mode layer-copy LAYER-MODE-ADDITION) + (gimp-layer-set-opacity layer-copy 70.0) + + ; Dodajemy zieloną warstwę + (set! green-layer (car (gimp-layer-new img "Green" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) + + (gimp-image-insert-layer img green-layer -1) + (gimp-context-set-foreground '(60 120 60)) ; ciemna zieleń + (gimp-drawable-edit-fill green-layer FILL-FOREGROUND) + (gimp-layer-set-mode green-layer LAYER-MODE-MULTIPLY) + (gimp-layer-set-opacity green-layer 25.0) + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-surreal-v32" + "_Surreal Toning with Green" + "_Nadaje obrazowi chłodne barwy z zielonymi akcentami i efektem mgły" + "P.R.P" + "Public Domain" + "24-12-2025" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-OPTION _"Shades of blue" '("Glow" "Pastel") + +) + +(script-fu-menu-register "przem-surreal-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-teal-portrait-look-v3x.scm b/script-fu/3.x/przem-teal-portrait-look-v3x.scm new file mode 100644 index 0000000..1660abe --- /dev/null +++ b/script-fu/3.x/przem-teal-portrait-look-v3x.scm @@ -0,0 +1,166 @@ +; przem-teal-portrait-look-v3x - Fotografia portretowa na sterydach +; 2026-04-06 - Przemysław R. Pietraszczyk +; licence: GPL v3 +; ver. 2.260409-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 (saturation layer1) + ; drawable, HUE-Range ( Red, Yellow, Green, Cyan, Blue, Magenta, or All), + ; Hue Offset (-180 180), lightness (-100 100), saturation (-100 100) overlap (0 100) + ; Lekko przygaszona saturacja globalnie + (gimp-drawable-hue-saturation layer1 HUE-RANGE-ALL + 0.0 + 0.0 + -30 + 0.0) + + ;Podbicie cyjanów / zieleni (turkus szalika, chłodniejsze tło) + (gimp-drawable-hue-saturation layer1 HUE-RANGE-CYAN + 5 + 2 + 15 + 0.0) + + (gimp-drawable-hue-saturation layer1 HUE-RANGE-GREEN + 3 + 2 + 10 + 0.0) + + ;Delikatne ocieplenie tonów skóry (czerwienie/żółcie) + (gimp-drawable-hue-saturation layer1 HUE-RANGE-RED + -3 + 2 + 8 + 0.0) + + (gimp-drawable-hue-saturation layer1 HUE-RANGE-YELLOW + -2 + 1 + 6 + 0.0)) + +(define (teal layer2) + (let* ( + ;cyan-red -5, magenta-green 0, yellow-blue +5 + (c1 '(-5 0 5)) + (c2 '(-3 0 3)) + (c3 '(5 0 -3)) + ) + (gimp-drawable-color-balance layer2 TRANSFER-SHADOWS 1 + (shadows (rval c1)) + (shadows (gval c1)) + (shadows (bval c1))) + (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 + (midtones (rval c2)) + (midtones (gval c2)) + (midtones (bval c2))) + (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 + (highlights (rval c3)) + (highlights (gval c3)) + (highlights (bval c3))) + )) + +(define (sand layer2) + (let* ( + ;cyan-red (+) 30 + ;magenta-green (+) 10 + ;yellow-blue (+) 35 + (c2 '(30 10 35)) + (c3 '(20 5 25)) + ) + (gimp-drawable-color-balance layer2 TRANSFER-MIDTONES 1 + (midtones (rval c2)) + (midtones (gval c2)) + (midtones (bval c2))) + (gimp-drawable-color-balance layer2 TRANSFER-HIGHLIGHTS 1 + (highlights (rval c3)) + (highlights (gval c3)) + (highlights (bval c3))) + )) + +(define (przem-teal-portrait-look-v32 img drawable mode noise) + + (let* ( + (ref-layer (vector-ref drawable 0)) + (work-layer (car (gimp-layer-copy ref-layer TRUE))) + (color-layer (car (gimp-layer-copy ref-layer TRUE))) + (the-layer 0) + (width (car (gimp-image-get-width img))) + (height (car (gimp-image-get-height img))) + (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) + (fg-color '(203 182 138)) + ;(fg-color '(217 199 161)) + ) + (gimp-context-push) + (gimp-image-undo-group-start img) + + (if (= noise TRUE) (begin + (gimp-image-insert-layer img noise-layer 0 -1) + (gimp-context-set-foreground fg-color) + (gimp-drawable-fill noise-layer FILL-TRANSPARENT) + (gimp-layer-set-mode noise-layer LAYER-MODE-MULTIPLY))) + + ;(gimp-selection-all img) + (set! the-layer (car (gimp-image-flatten img))) + (gimp-layer-set-opacity the-layer 100) + + (gimp-image-insert-layer img color-layer 0 -1) + (if (= mode 0) (begin + ;; Delikatne przyciemnienie i zwiększenie kontrastu + ;; brightness: -5, contrast: 15 + (gimp-drawable-brightness-contrast the-layer -0.5 0.15) + (teal color-layer))) + (if (= mode 1) (begin + (gimp-drawable-brightness-contrast the-layer 0.10 0.5) + (sand color-layer))) + (gimp-layer-set-opacity color-layer 5) + + (gimp-image-insert-layer img work-layer 0 -1) + (saturation work-layer) + (gimp-layer-set-opacity work-layer 40) + + ;(let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))) + ; (gimp-item-set-visible merged-layer TRUE)) + ;(gimp-selection-none img) + + (gimp-image-undo-group-end img) + (gimp-displays-flush) + (gimp-context-pop) + )) + +(script-fu-register-filter "przem-teal-portrait-look-v32" + _"_Teal portrait look" + _"Nadaje zdjęciu miękki portretowy look: lekko przygaszone kolory, podbity turkus, ocieplona skóra, umiarkowany kontrast." + "Przemysław R. Pietraszczyk" + "GPL v3" + "2026-04-06" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-OPTION _"Colors Balance" '("TEAL" "SAND") + SF-TOGGLE _"Sand Noise" FALSE +) + +(script-fu-menu-register "przem-teal-portrait-look-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-traditional-photo-v3x.scm b/script-fu/3.x/przem-traditional-photo-v3x.scm new file mode 100644 index 0000000..9449379 --- /dev/null +++ b/script-fu/3.x/przem-traditional-photo-v3x.scm @@ -0,0 +1,69 @@ +; przem-traditional-photo-v3x - luźne nawiązanie do chemii tradycyjnej fototgrafii +; author: PRP +; licencja: Public Domain +; Gdańsk - 15-02-2025 +; ver. 2.250217-0~beta for GIMP 3 + + +(define (przem-traditional-photo-v32 image drawable crossing contrast-colors balance-color) + (let ( + ;(the-image (car (gimp-image-duplicate image)) image) + (the-layer 0) + (image-width (car (gimp-image-get-width image))) + (image-height (car (gimp-image-get-height image))) + ) + (gimp-image-undo-group-start image) + + ;(gimp-selection-all the-image) + + (set! the-layer (car (gimp-image-flatten image))) + + (if (= crossing TRUE) + (cross image image-width image-height)) + ;(if (= grain TRUE) + ; (gimp-noise-hurl drawable 1 0.02)) + (if (= contrast-colors TRUE) + ; Zmniejsz kontrast i dodaj kolor + (gimp-drawable-brightness-contrast the-layer -0.078125 -0.15625) + (gimp-drawable-color-balance the-layer TRANSFER-SHADOWS TRUE balance-color 0 -30)) + + ;(gimp-selection-none the-tmage) + + + (gimp-image-undo-group-end image) + (gimp-displays-flush) +) ) + +(define (cross image width height) + ; crossing photo + ;(gimp-drawable-curves-spline layer1 HISTOGRAM-VALUE (spline-chrome-it)) + (let* ((layer (gimp-layer-new image "Cross" width height RGB-IMAGE 100 LAYER-MODE-NORMAL)) + + (set! layer (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)) + + (gimp-drawable-curves-spline layer HISTOGRAM-VALUE 10 #(0 0 64 90 128 160 192 230 255 255)) + (gimp-drawable-curves-spline layer HISTOGRAM-RED 10 #(0 0 64 50 128 180 192 230 255 255)) + (gimp-drawable-curves-spline layer HISTOGRAM-GREEN 10 #(0 0 64 80 128 120 192 200 255 255)) + (gimp-drawable-curves-spline layer HISTOGRAM-BLUE 10 #(0 0 64 30 128 150 192 220 255 255)) + ; lub + ;(define value #(0 0 64 90 128 160 192 230 255 255)) + ;(gimp-drawable-curves-spline drawable HISTOGRAM-VALUE 10 value) + )) +) + +(script-fu-register-filter "przem-traditional-photo-v32" + _"_Convert photographs to neotraditional" + _"Konwertuje na neotradycyjną fotografię" + "Przemyslaw R. Pietraszczyk" + "Public Domain" + "2025-02-15" + "RGB*" + SF-ONE-OR-MORE-DRAWABLE + SF-TOGGLE _"Crossing" FALSE + SF-TOGGLE _"Contrast and Color corection" TRUE + ;SF-ADJUSTMENT _"Contrast" (list -0.15625 -1 1 0.00010 0.00100 0 0) ; źle działa dodanie jako parametru + SF-ADJUSTMENT _"Balance Color" (list -30 -100 100 1 1 0 0) +) + +(script-fu-menu-register "przem-traditional-photo-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-true-cyjanotype-v3x.scm b/script-fu/3.x/przem-true-cyjanotype-v3x.scm new file mode 100644 index 0000000..6c12378 --- /dev/null +++ b/script-fu/3.x/przem-true-cyjanotype-v3x.scm @@ -0,0 +1,99 @@ +; przem-true-cyjantype-v3x - imituje efekt prawdziwej cyjanotypii +; author: PRP +; licencja: Public Domain +; Gdańsk - 14-10-2025 +; ver. 2.251104-1 + +(define (przem-true-cyjantype-v32 image drawable black normalize value-blue invert replace tone-curve) + (let* ((gradient-layer 0) + (type-layer (vector-ref drawable 0)) + (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)))) + (layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type layer))) + (gradient-reverse FALSE) + ) + (gimp-context-push) + (gimp-image-undo-group-start image) + + ;; jeśli obraz jest szary to konwertuje go na RGB - tak na sztukę + (if (> (car (gimp-drawable-type type-layer)) 1) + (gimp-image-convert-rgb image)) + + ; Konwersja obrazu do skali szarości + (if (= type RGB-IMAGE) + (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) + ) + + + ; 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))) + + (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego + (gimp-context-set-background '(0 0 0)) + + (gimp-image-insert-channel image mask -1 0) + + + (gimp-image-insert-layer image gradient-layer 0 -1) + + (gimp-context-set-gradient-reverse gradient-reverse) + (gimp-drawable-edit-gradient-fill gradient-layer + GRADIENT-LINEAR 0 + FALSE 1 0 + TRUE + 0 0 0 0) + (gimp-layer-set-opacity gradient-layer value-blue) + + ; w przeciwieństwie do wer. 2.10 krzywe tonalne działają inaczej + (if (= tone-curve TRUE) + (let* ((curves-layer (car (gimp-layer-copy gradient-layer TRUE))) + ;(gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE 10 #(0 0 32 40 128 140 220 230 255 255)) + ; nie trzeba już deklarować długości vektora + (gimp-drawable-curves-spline curves-layer HISTOGRAM-VALUE #(0 0 (/ 32 255) (/ 40 255) (/ 128 255) (/ 140 255) (/ 220 255) (/ 230 255) (/ 255 255) (/ 255 255))) + ) + (gimp-image-insert-layer image curves-layer 0 -1) + (gimp-item-set-visible curves-layer TRUE) + )) + + (if (= invert TRUE) + (gimp-drawable-invert type-layer FALSE)) + + ;(if (= replace TRUE) + ; ; Wybierz tylko czarne piksele + ; (gimp-image-select-color image CHANNEL-OP-REPLACE drawable '(0 0 0)) + + ; ; Wypełnij wybrane obszary kolorem granatowym + ; (gimp-context-set-foreground '(0 0 128)) ; RGB dla granatowego + ; (gimp-edit-bucket-fill drawable BUCKET-FILL-FG LAYER-MODE-NORMAL 100 0 FALSE 0 0) + ; ; Odznacz selekcję + ; (gimp-selection-none image)) + + (let* ((merged-layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) + (gimp-item-set-visible merged-layer TRUE)) + + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-true-cyjantype-v32" + _"Apply true cyjanotype effect" + _"Pseudo-prawdziwa próba imitacji cyjanotypii" + "Przemysław R. Pietraszczyk" + "Public Domain" + "2025-09-21" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0) + SF-TOGGLE "Normalize to 100%" TRUE + SF-ADJUSTMENT "Blue intensity" '(50 0 100 1 10 0 0) + SF-TOGGLE "Invert colors" FALSE + SF-TOGGLE "Replace black" FALSE + SF-TOGGLE "Tone Curve" TRUE + +) + +(script-fu-menu-register "przem-true-cyjantype-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/3.x/przem-wet-collodion-v3x.scm b/script-fu/3.x/przem-wet-collodion-v3x.scm new file mode 100644 index 0000000..e755060 --- /dev/null +++ b/script-fu/3.x/przem-wet-collodion-v3x.scm @@ -0,0 +1,151 @@ +; przem-wet-collodion-v3x - imituje efekt mokrego kolodionu +; author: PRP +; licencja: Public Domain +; Gdańsk - 24-08-2025 +; ver. 2.250824-1~beta + +(define (add-hsv-noise img drawable intensity-h intensity-s intensity-v grain) + (let* ( + (width (car (gimp-image-get-width img))) + (height (car (gimp-image-get-height img))) + (noise-layer (car (gimp-layer-new img "Noise" width height RGB-IMAGE 100 LAYER-MODE-NORMAL))) + ) + + ; Konwertuj do HSV jeśli to konieczne + ;(if (not (= (car (gimp-drawable-is-rgb drawable)) 1)) + ; (gimp-image-convert-rgb img)) + + (gimp-image-insert-layer img noise-layer 0 -1) + (gimp-drawable-fill noise-layer FILL-TRANSPARENT) + + ; Generuj szum + ;(plug-in-solid-noise RUN-NONINTERACTIVE img noise-layer 0 0 (random 1000) 0 4 4) + (let* ((noise-width (cadddr (gimp-drawable-mask-intersect drawable))) + (noise-height (caddr (cddr (gimp-drawable-mask-intersect drawable))))) + + (gimp-drawable-merge-new-filter noise-layer "gegl:noise-solid" 0 LAYER-MODE-REPLACE 1.0 "tileable" FALSE "turbulent" FALSE "seed" (random 100) + "detail" 1 "x-size" 4.0 "y-size" 4.0 + "width" noise-width "height"noise-height)) + + + + ; Ustaw odpowiednie intensywności dla każdego kanału HSV + (let* ( + (h-channel (car (gimp-layer-new img "H Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-HUE))) + (s-channel (car (gimp-layer-new img "S Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-SATURATION))) + (v-channel (car (gimp-layer-new img "V Channel" width height RGB-IMAGE 100 LAYER-MODE-HSV-VALUE)))) + + ; Dodaj kanały + (gimp-image-insert-layer img h-channel 0 -1) + (gimp-image-insert-layer img s-channel 0 -1) + (gimp-image-insert-layer img v-channel 0 -1) + + ; Skopiuj szum do każdego kanału + (gimp-edit-copy (vector noise-layer)) + ; czy to potrzebne ? + (gimp-edit-copy (vector drawable)) + (let* ( + (pasted (car (gimp-edit-paste h-channel TRUE))) + (num-pasted (vector-length pasted)) + (floating-sel (vector-ref pasted (- num-pasted 1))) + ) + (gimp-layer-set-offsets floating-sel 0 0) + (gimp-floating-sel-anchor floating-sel)) + + (gimp-edit-copy (vector drawable)) + (let* ( + (pasted (car (gimp-edit-paste s-channel TRUE))) + (num-pasted (vector-length pasted)) + (floating-sel (vector-ref pasted (- num-pasted 1))) + ) + (gimp-layer-set-offsets floating-sel 0 0) + (gimp-floating-sel-anchor floating-sel)) + + + (gimp-edit-copy (vector drawable)) + (let* ( + (pasted (car (gimp-edit-paste v-channel TRUE))) + (num-pasted (vector-length pasted)) + (floating-sel (vector-ref pasted (- num-pasted 1))) + ) + (gimp-layer-set-offsets floating-sel 0 0) + (gimp-floating-sel-anchor floating-sel)) + + (gimp-layer-set-opacity noise-layer 80) + + ; Ustaw przezroczystość dla każdego kanału + (gimp-layer-set-opacity h-channel intensity-h) + (gimp-layer-set-opacity s-channel intensity-s) + (gimp-layer-set-opacity v-channel intensity-v) + + ; Połącz kanały z oryginalnym obrazem + (gimp-image-merge-down img h-channel EXPAND-AS-NECESSARY) + (gimp-image-merge-down img s-channel EXPAND-AS-NECESSARY) + (gimp-image-merge-down img v-channel EXPAND-AS-NECESSARY) + + + ) + ;(gimp-image-remove-layer img noise-layer) + ) +) + + + + +(define (przem-wet-collodion-v32 image drawable mode intensity-h intensity-s intensity-v grain blur) + (let* ( + (layer (vector-ref drawable 0)) + (type (car (gimp-drawable-type-with-alpha layer))) + (width (car (gimp-image-get-width image))) + (height (car (gimp-image-get-height image))) + (mode-blur 0) + ) + (gimp-context-push) + (gimp-image-undo-group-start image) + + ;; Desaturacja + (if (= type RGBA-IMAGE) + (gimp-drawable-desaturate layer DESATURATE-LIGHTNESS)) + + ;; Dodanie winiety + (let* ((w-layer (car (gimp-layer-copy layer TRUE)))) + (gimp-image-insert-layer image w-layer 0 -1) + (gimp-drawable-merge-new-filter w-layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" 200 "std-dev-y" 200 "filter" "auto") + (gimp-layer-set-mode w-layer LAYER-MODE-MULTIPLY) + (gimp-layer-set-opacity w-layer 60) + ) + + ;; Dodanie szumu + (add-hsv-noise image layer intensity-h intensity-s intensity-v grain) + ;;(plug-in-noisify RUN-NONINTERACTIVE image layer FALSE grain grain grain 0) + + ;; Dodanie lekkiego rozmycia + (if (= mode 0) (begin (set! mode-blur "auto"))) + (if (= mode 1) (begin (set! mode-blur "iir"))) + (if (= mode 2) (begin (set! mode-blur "fir"))) + (gimp-drawable-merge-new-filter layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" blur "std-dev-y" blur "filter" mode-blur) + + (gimp-image-undo-group-end image) + (gimp-displays-flush) + (gimp-context-pop) + ) +) + +(script-fu-register-filter "przem-wet-collodion-v32" + _"Wet Collodion" + _"Imituje efekt mokrego kolodionu" + "PRP" + "Public Domain" + "2025-07-15" + "RGB* GRAY*" + SF-ONE-OR-MORE-DRAWABLE + SF-OPTION "Mode" '("AUTO" "IIR" "FIR") + SF-ADJUSTMENT "Hue Noise Intensity" '(30 0 100 1 10 0 0) + SF-ADJUSTMENT "Saturation Noise Intensity" '(20 0 100 1 10 0 0) + SF-ADJUSTMENT "Value Noise Intensity" '(15 0 100 1 10 0 0) + SF-ADJUSTMENT "Grain" '(0.2 0 1 0.1 0.1 2 0) + SF-ADJUSTMENT "Blur" '(2 0 100 1 10 0 0) +) + +(script-fu-menu-register "przem-wet-collodion-v32" + "/Filters/PIETRASZCZYK/") diff --git a/script-fu/CzytajTo.md b/script-fu/CzytajTo.md new file mode 100644 index 0000000..f9bd217 --- /dev/null +++ b/script-fu/CzytajTo.md @@ -0,0 +1,3 @@ +Filtry dla wersji 2.10 nie są już rozwijane, ani dodawane nowe. +Script-fu dla wersji 3.0 oraz 3.2 znajdują się w katalogu 3.x +W katalogu 3.0 (only) znajduje się filtr który prawidłowo działa tylko w wersji 3.0 diff --git a/script-fu/changelog.md b/script-fu/changelog.md index ede0079..8b2bfdf 100644 --- a/script-fu/changelog.md +++ b/script-fu/changelog.md @@ -1,3 +1,6 @@ +# [2.260630-0] +* Połączenie linii filtrow dla wydań 3.0 i 3.2 + # [2.260615-0] przem-hitchcock-d400-film-effect-v32.scm * Przekopiowanie filtra dla Gimpa 3.2 -- cgit v1.2.3