summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-10-05 17:45:50 +0200
committerPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-10-05 17:45:50 +0200
commit5bc9c722e3a74a37054e8a085eaabb4f3b74b062 (patch)
treeff2fa855184791f832e72e7c9a2350f122708149
parent04aae65637bee0dd7f193a0e239f3c7ae1665436 (diff)
2.251005-0:przem-ilford-expired-v3.scm
-rw-r--r--script-fu/3.0/przem-ilford-expired-v3.scm138
-rw-r--r--script-fu/3.0/przem-kodachrome-v3.scm2
-rw-r--r--script-fu/changelog.md2
3 files changed, 141 insertions, 1 deletions
diff --git a/script-fu/3.0/przem-ilford-expired-v3.scm b/script-fu/3.0/przem-ilford-expired-v3.scm
new file mode 100644
index 0000000..6aaecfb
--- /dev/null
+++ b/script-fu/3.0/przem-ilford-expired-v3.scm
@@ -0,0 +1,138 @@
+; przem-ilford-expired-v3 - Fotografia imitująca przeterminowany film Ilforda
+; 2025-10-05 - Przemysław R. Pietraszczyk
+; licence: Public Domain
+; ver. 2.251005-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))
+
+ (apply-quick-tint image work-layer work-layer-second image-width image-height saturation lightness hc cc)
+
+ (let* ((layer (gimp-layer-new image "Curves" image-width image-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 8 #(0 0 24 22 129 138 255 255))
+ ))
+
+
+ (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"
+ "<Image>/Filters/PIETRASZCZYK/")
+
diff --git a/script-fu/3.0/przem-kodachrome-v3.scm b/script-fu/3.0/przem-kodachrome-v3.scm
index 6a5961e..534d482 100644
--- a/script-fu/3.0/przem-kodachrome-v3.scm
+++ b/script-fu/3.0/przem-kodachrome-v3.scm
@@ -2,7 +2,7 @@
; 2025-09-25 - Przemysław R. Pietraszczyk
; licence: Public Domain
; ver. 2.250929-0
-; To script-fu wykorzystuje funkcje ze skryptu 'chrome-it.scm'
+; Ten script-fu wykorzystuje funkcje ze skryptu 'chrome-it.scm'
; Autorstwa Spencer Kimball
(define (shadows val)
diff --git a/script-fu/changelog.md b/script-fu/changelog.md
index 5db137e..9c86863 100644
--- a/script-fu/changelog.md
+++ b/script-fu/changelog.md
@@ -1,3 +1,5 @@
+# [2.251005-0] przem-ilford-expired-v3.scm
+* Nowy filtr, imitujący przeterminowane kolorowe filmy Ilforda
# [2.251001-0] przem-oldschool-photography-v3.scm
* Kolorowa fotografia przedwojenna, uzyskiwana za pomocą zmiany temeratury barwowej