From d7df20e67e677734cf79723262fe305fcf1de9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw?= Date: Tue, 4 Nov 2025 21:23:48 +0100 Subject: 2.251104-1:przem-true-cyjanotype-v3.scm --- script-fu/3.0/przem-true-cyjanotype-v3.scm | 29 ++++++++++++++++++----------- script-fu/changelog.md | 4 ++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/script-fu/3.0/przem-true-cyjanotype-v3.scm b/script-fu/3.0/przem-true-cyjanotype-v3.scm index 41fd752..c67476f 100644 --- a/script-fu/3.0/przem-true-cyjanotype-v3.scm +++ b/script-fu/3.0/przem-true-cyjanotype-v3.scm @@ -2,9 +2,9 @@ ; author: PRP ; licencja: Public Domain ; Gdańsk - 14-10-2025 -; ver. 2.251014-2 +; ver. 2.251104-1 -(define (przem-true-cyjantype-v3 image drawable black normalize value-blue invert replace) +(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)))) @@ -17,11 +17,12 @@ ;; 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)) + (gimp-image-convert-rgb image)) ; Konwersja obrazu do skali szarości (if (= type RGB-IMAGE) - (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS)) + (gimp-drawable-desaturate type-layer DESATURATE-LIGHTNESS) + ) ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb @@ -35,12 +36,6 @@ (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 @@ -48,7 +43,17 @@ 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)) @@ -86,6 +91,8 @@ 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" diff --git a/script-fu/changelog.md b/script-fu/changelog.md index 169dded..4806c63 100644 --- a/script-fu/changelog.md +++ b/script-fu/changelog.md @@ -1,5 +1,5 @@ -# [2.251014-2] przem-true-cyjanotype-v3.scm -* Poprawiłem inwersjie kolorów, skrypt nawiązuje do wersji 2.10. Jednak zachowuje się w inny sposób +# [2.251104-1] przem-true-cyjanotype-v3.scm +* Implementacja krzywych tonalnych w wersji v3 # [2.251014-1] przem-true-cyjanotype-v3.scm * Wstępna wersjia, namiastka z wersji 2.10 -- cgit v1.2.3