summaryrefslogtreecommitdiff
path: root/script-fu/3.0/przem-oldschool-photography-v3.scm
blob: 36c345967c824ee6ccdd89643dac6048d0ba239c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
; 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"
                         "<Image>/Filters/PIETRASZCZYK/")