diff options
| -rw-r--r-- | script-fu/3.0/przem-prussian-blue-effect-v3.scm | 7 | ||||
| -rw-r--r-- | script-fu/3.0/przem-true-cyjanotype-v3.scm | 93 | ||||
| -rw-r--r-- | script-fu/changelog.md | 6 |
3 files changed, 103 insertions, 3 deletions
diff --git a/script-fu/3.0/przem-prussian-blue-effect-v3.scm b/script-fu/3.0/przem-prussian-blue-effect-v3.scm index c61a422..50c81e4 100644 --- a/script-fu/3.0/przem-prussian-blue-effect-v3.scm +++ b/script-fu/3.0/przem-prussian-blue-effect-v3.scm @@ -4,7 +4,7 @@ ; Gdańsk - 22-6-2025 ; ver. 2.250712-0~beta -(define (przem-prussian-blue-effect-v3 img drawable mode black value-blue brightness contrast) +(define (przem-prussian-blue-effect-v3 img drawable mode black value-blue brightness contrast invert) ;(script-fu-use-v3) @@ -59,8 +59,9 @@ 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)))) @@ -85,7 +86,7 @@ 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" diff --git a/script-fu/3.0/przem-true-cyjanotype-v3.scm b/script-fu/3.0/przem-true-cyjanotype-v3.scm new file mode 100644 index 0000000..163e8be --- /dev/null +++ b/script-fu/3.0/przem-true-cyjanotype-v3.scm @@ -0,0 +1,93 @@ +; przem-true-cyjantype-v3 - imituje efekt prawdziwej cyjanotypii
+; author: PRP
+; licencja: Public Domain
+; Gdańsk - 14-10-2025
+; ver. 2.251014-1
+
+(define (przem-true-cyjantype-v3 image drawable black normalize value-blue invert replace)
+ (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)
+
+ (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))
+ (gimp-layer-set-opacity curves-layer 100)
+
+ ))
+
+ (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)
+
+
+ ;(if (= invert TRUE)
+ ;(gimp-invert drawable))
+
+ ;(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
+)
+
+(script-fu-menu-register "przem-true-cyjantype-v3"
+ "<Image>/Filters/PIETRASZCZYK/")
diff --git a/script-fu/changelog.md b/script-fu/changelog.md index 202aee4..cb7799c 100644 --- a/script-fu/changelog.md +++ b/script-fu/changelog.md @@ -1,3 +1,9 @@ +# [2.251014-1] przem-true-cyjanotype-v3.scm +* Wstępna wersjia, namiastka z wersji 2.10 + +# [2.251014-0] przem-true-cyjanotype-v3.scm +* Pierwsze koty za płoty z portem kolejnego filtra + # [2.251006-0] przem-ilford-expired-v3.scm * Nadanie wartwom transparentności * Polączenie i uwidoczniene powstałej warstwy |
