summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-07-12 18:27:49 +0200
committerPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-07-12 18:27:49 +0200
commit732680713aad838512b90b75c3a24c7df9d02d43 (patch)
tree18bde53b6fa3bc09818c0657142f6da5c057899e
parent7f0e5805b504a2906b6bc024d362643b8ed2583f (diff)
przem-prussian-blue-effect-v3.scm-2.250712-0
-rw-r--r--script-fu/3.0/przem-prussian-blue-effect-v3.scm47
-rw-r--r--script-fu/changelog.md139
-rw-r--r--script-fu/snapshot/helos-40.scm70
3 files changed, 243 insertions, 13 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 720e83b..c61a422 100644
--- a/script-fu/3.0/przem-prussian-blue-effect-v3.scm
+++ b/script-fu/3.0/przem-prussian-blue-effect-v3.scm
@@ -2,10 +2,12 @@
; author: PRP
; licencja: Public Domain
; Gdańsk - 22-6-2025
-; ver. 2.250711-0~beta
+; ver. 2.250712-0~beta
-(define (przem-prussian-blue-effect-v3 img drawable black value-blue brightness contrast)
+(define (przem-prussian-blue-effect-v3 img drawable mode black value-blue brightness contrast)
+ ;(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))))
@@ -22,23 +24,41 @@
(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))
- ;(if (= mode 0) (gimp-layer-set-mode gradient-layer OVERLAY-MODE))
- ;(if (= mode 1) (gimp-layer-set-mode gradient-layer SCREEN-MODE))
-
+
(gimp-drawable-brightness-contrast gradient-layer brightness contrast)
-
- ;(plug-in-colors-channel-mixer TRUE img gradient-layer TRUE 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)
(gimp-image-insert-channel img mask -1 0)
-
- ;(gimp-edit-blend gradient-layer FG-BG-RGB-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE FALSE 0 0 TRUE 0 0 0 0)
- (gimp-drawable-edit-gradient-fill gradient-layer
- GRADIENT-LINEAR 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)
-
+ 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)
@@ -60,6 +80,7 @@
"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)
diff --git a/script-fu/changelog.md b/script-fu/changelog.md
new file mode 100644
index 0000000..d533603
--- /dev/null
+++ b/script-fu/changelog.md
@@ -0,0 +1,139 @@
+# [2.250712-0] przem-prossian-blue-effect-v3.scm
+* Dodałem tryby mieszania warstwy
+* Snapshot dla Helios-40.scm
+
+# [2.250711-0] przem-prossian-blue-effect-v3.scm
+* Dodałem łączenie warstw, więc można już dodać na przykład ramkę
+
+# [2.250710-0] przem-prossian-blue-effect-v3.scm
+* Port filtra dla Gimpa 3.0
+
+# [2.250622-0] przem-prossian-blue-effect.scm
+* Dodane filtra imitującego "pruski błękit"
+
+# [2.250619-3] przem-soft-focus-noninteractive-v3.scm
+* Dodanie filtra wywolywanego z linii poleceń - nie uruchamia się
+
+# [2.250618-0] przem-cyanotype-gum-effect.scm
+* Dodanie efektu zastosowania cyjanotypi wraz z gumą dwuchromianową\
+
+# [2.250616-0] przem-soft-focus-noninteractive.scm
+* Dodanie filtra wywolywanego z linii poleceń
+
+# [2.250615-0] przem-soft-focus.scm
+* Dodanie filtra "miękkiego focusa' - w nawiązaniu do piktorializmu
+
+# [2.250610-4] przem-expired-negative.scm
+* Konwersja z RGB na colorspace Gray
+
+# [2.250610-3] przem-expired-negative.scm
+* Dzielnik mgły, zwiększony do 0.50
+
+# [2.250610-2] przem-expired-negative.scm
+* Dodanie suwaka density
+
+# [2.250610-1] przem-expired-negative.scm
+* Przy odwolywaniu się do wspólnej funkcji gradientu - filtr dzialą nieprawidlowo
+* Możliwa zmiana odcieniu gradientu (background)
+
+# [2.250608-3] przem-expired-negative.scm
+* Dodaje efekt prawidłowo, zarówno na dole jak i na górze
+
+# [2.250608-2] przem-expired-negative.scm
+* Dodaje efekt expire ORWO do poziomego zdjęcia, jednak nie równomiernie
+
+# [2.250525-1] przem-expired-negative.scm
+* Rozróżnia rodzaj obrazu. Jednak prawidłowo przetwarza jedynie póki co portrety
+
+# [2.250522-4] przem-expired-negative.scm
+* Mgła jest prawidłowo rozmieszczana po przegach
+
+# [2.250522-0] przem-expired-negative.scm
+* Filtr imitujący przetermonowany negatyw ORWO - Inicjacja
+
+# [2.250225-2] przem-apply-waves-effect.scm
+* Filtr, działać, działa. Jednak wynik, trudno uzanć za falowanie.
+
+# [2.250225-1] przem-apply-waves-effect.scm
+* Pierwszy mały sukces
+
+# [2.250225-0] przem-apply-waves-effect.scm
+* Próba skopiowania barwy pixela
+
+# [2.250224-0] przem-apply-waves-effect.scm
+* Nowa propozycja z sincosinus
+
+# [2.250223-3] przem-apply-cents-effect.scm
+* Drobne literówki
+
+# [2.250223-2] przem-apply-cents-effect.scm
+* Dodanie nowego filtra - centkowanie
+
+# [2.250223-0] przem-apply-waves-effect.scm
+* Dodanie nowego filtra
+
+# [2.250222-0] przem-apply-sepia-v3.scm
+* Korekta w SF_OPTION
+
+# [2.250221-0] przem-apply-sepia-v3.scm
+* Dodanie potrójnego pola wyboru dla rodzaju gradientu.
+
+# [2.25021=20-0] przem-apply-sepia-v3.scm
+* Przeniesienie 'gimp-layer-new' do wewnątrz skryptu - desaturate dalej zwraca błąd przy zdjęciach monochromatycznych
+
+# [2.250219-1] przem-apply-sepia-v3.scm
+* Dodanie 'gimp-image-flatten', bez efektu
+
+# [2.250219-0] przem-apply-sepia-v3.scm
+* Dodanie suwaka z shadow-sepia użytego jako argument 'gimp-drawable-edit-gradient-fill'
+
+# [2.250217-0] przem-traditional-photo.scm && przem-traditional-photo-v3.scm
+* Zmniejszyłem skrajne parametry do -100 i 100 dla skali kontrastu i balansu koloru
+
+# [2.250216-3] przem-traditional-photo-v3.scm
+* Dodanie krosowania. Jednak można odnieść wrażenie że zmiana balans koloru nie daje żądnego efektu
+
+# [2.250216-2] przem-traditional-photo-v3.scm
+* Rezygnacja ze suwaka kontrastu na rzecz zmiennej ( -0.15625 )- możliwe że wersja dla 2.10 wykrzącza się przez zbyt wysoki argument dla kontrastu
+
+# [2.250216-1] przem-traditional-photo.scm
+* Kosmetyka danych suwaka
+
+# [2.250216-0] przem-traditional-photo.scm
+* Dodanie suwaka ze zmianą kontrastu oraz suwaka z balansem koloru
+
+# [2.250215-2] przem-traditional-photo.scm
+* dodanie nowego skryptu korsującego zdjęcie
+
+# [2.250215-1] przem-apply-sepia.scm - przem-add-background-under-text.scm
+* Oba skrypty pracują nieprawidłowo z obrazem w odcieniach szarości
+
+# [2.250215-0] przem-apply-sepia.scm
+* BUG ? Nie potrafi przekonwertować obrazka GRAY na RGB - w przypadku szarego obrazu nakłąda jedynie gradient, bez sepii
+
+# [1.250214-0] przem-apply-sepia.scm
+* Częściowe dostosowanie wtyczki do nowego API z RC2 - póki co przetwarza jedynie kolorowe obrazy
+
+# [1.250213-0] przem-apply-sepia.scm
+* Dodałem lepszy gradient, revers gradientu oraz kształt okręgu
+
+# [1.250212-0] przem-apply-sepia.scm
+* Opruje już jedynie na dwóch odcieniach sepii
+
+# [1.250212-0] przem-add-background-under-text.scm
+* Możliwość zmiany koloru tła i czcionki wewnątrz wtyczki, nie można zmienić czcionki. Potrafi się wykrzaczyć
+
+# [1.250910-0~alpha]
+* Wersja alpha 'przem-add-background-under-text.scm', pokazuje samo tło i w dodatku w złym miejscu
+
+# [1.250910-2]
+* Wersja stabilna 'przem-apply-sepia.scm' dla 3.0
+
+# [1.250209-1]
+* Wersja stabilna 'przem-add-background-under-text.scm' dla 2.10
+
+# [0.250207-0]
+* Incjacja skryptu 'przem-apply-sepia.scm'
+
+# [0.250206-0]
+* Incjacja skryptu 'przem-add-background-under-text.scm'
diff --git a/script-fu/snapshot/helos-40.scm b/script-fu/snapshot/helos-40.scm
new file mode 100644
index 0000000..0d9f917
--- /dev/null
+++ b/script-fu/snapshot/helos-40.scm
@@ -0,0 +1,70 @@
+(define (script-fu-helios-40-effect
+ img
+ drawable
+ blur-amount
+ warmth-amount
+ vignette-strength
+ bloom-effect)
+ (gimp-image-undo-group-start img)
+
+ ; Zapisz oryginalną selekcję
+ (let* ((orig-selection (car (gimp-selection-save img))))
+
+ ; Dodaj warstwę dla efektów
+ (let* ((helios-layer (car (gimp-layer-copy drawable FALSE))))
+ (gimp-image-insert-layer img helios-layer 0 -1)
+ (gimp-item-set-name helios-layer "Helios-40 Effect")
+
+ ; Efekt ciepłych tonów
+ (if (> warmth-amount 0)
+ (begin
+ (gimp-color-balance helios-layer 0 TRUE 0 warmth-amount 0)
+ (gimp-color-balance helios-layer 1 TRUE warmth-amount 0 0)))
+
+ ; Lekkie rozmycie dla charakterystycznego looku
+ (if (> blur-amount 0)
+ (plug-in-gauss 1 img helios-layer blur-amount blur-amount 0))
+
+ ; Zmniejsz kontrast
+ (gimp-brightness-contrast helios-layer 0 -20)
+
+ ; Dodaj winietowanie
+ (if (> vignette-strength 0)
+ (begin
+ (gimp-selection-all img)
+ (gimp-selection-feather img 100)
+ (gimp-selection-invert img)
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-edit-blend helios-layer 0 0 0 100 0 0 FALSE FALSE 0 0 TRUE
+ vignette-strength 0 0 0 0)
+ (gimp-selection-none img)))
+
+ ; Efekt bloom (dla symulacji bokeh)
+ (if (> bloom-effect 0)
+ (begin
+ (let* ((bloom-layer (car (gimp-layer-copy helios-layer FALSE))))
+ (gimp-image-insert-layer img bloom-layer 0 -1)
+ (gimp-layer-set-mode bloom-layer 13) ; Tryb nakładania - Overlay
+ (plug-in-gauss 1 img bloom-layer (* bloom-effect 3) (* bloom-effect 3) 0)
+ (gimp-layer-set-opacity bloom-layer 50))))
+
+ ; Przywróć oryginalną selekcję
+ (gimp-selection-load orig-selection)
+ (gimp-image-remove-channel img orig-selection))
+
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)))
+
+(script-fu-register "script-fu-helios-40-effect"
+ "<Image>/Filters/Artistic/Helios-40 Effect..."
+ "Symuluje charakterystyczną kolorystykę obiektywu Helios-40"
+ "Your Name"
+ "Your Name"
+ "2023"
+ "RGB*"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT "Rozmycie (0-20)" '(3 0 20 1 1 0 0)
+ SF-ADJUSTMENT "Ciepłe tony (0-100)" '(30 0 100 1 1 0 0)
+ SF-ADJUSTMENT "Winieta (0-100)" '(40 0 100 1 1 0 0)
+ SF-ADJUSTMENT "Efekt bloom (0-5)" '(2 0 5 1 1 0 0))