diff options
author | Przemysław <przem@prymula.ct8.pl> | 2025-02-24 17:07:03 +0100 |
---|---|---|
committer | Przemysław <przem@prymula.ct8.pl> | 2025-02-24 17:07:03 +0100 |
commit | e3e6507c32be5654d8e3fe0e2c9e96907212d195 (patch) | |
tree | 6afa2636d6238936057bb4879ac5f3d6f4352cc5 /2.10/przem-apply-waves-effect.scm | |
parent | 0f9948cb3a93960382c78e7e7fb28f8479196629 (diff) |
przem-apply-waves-effect.scm-2.250224-0
Diffstat (limited to '2.10/przem-apply-waves-effect.scm')
-rw-r--r-- | 2.10/przem-apply-waves-effect.scm | 75 |
1 files changed, 62 insertions, 13 deletions
diff --git a/2.10/przem-apply-waves-effect.scm b/2.10/przem-apply-waves-effect.scm index 1578bc9..2608410 100644 --- a/2.10/przem-apply-waves-effect.scm +++ b/2.10/przem-apply-waves-effect.scm @@ -5,19 +5,65 @@ ; ver. 1.250226-0 ;(define (przem-apply-waves-effect image drawable amplitude wavelength phase type) -(define (przem-apply-waves-effect image drawable) - - (let* ( - (width (car (gimp-image-width image))) - (height (car (gimp-image-height image))) - (amplitude 10) ; Amplituda fal - (wavelength 50) ; Długość fali - (type 0) ; Typ fali (0 - sinusoidalna, 1 - trójkątna, 2 - prostokątna) - (phase 0) ; Faza fali - ) - (plug-in-waves RUN-NONINTERACTIVE image drawable amplitude wavelength type phase) - ) -) +;(define (przem-apply-waves-effect image drawable) + +; (let* ( +; (width (car (gimp-image-width image))) +; (height (car (gimp-image-height image))) + ; (amplitude 10) ; Amplituda fal + ; (wavelength 50) ; Długość fali + ; (type 0) ; Typ fali (0 - sinusoidalna, 1 - trójkątna, 2 - prostokątna) + ; (phase 0) ; Faza fali +; ) + ; (plug-in-waves RUN-NONINTERACTIVE image drawable amplitude wavelength type phase) + ; ) +;) +(define (przem-apply-waves-effect image drawable amplitude frequency phase) + (let* ( + (width (car (gimp-image-width image))) + (height (car (gimp-image-height image))) + (new-image (car (gimp-image-duplicate image))) + (new-drawable (car (gimp-image-get-active-drawable new-image))) + (y 0) + (x 0)) + ;(gimp-image-undo-group-start image) + + ;(gimp-image-insert-layer new-image new-drawable 0 -1) + (gimp-selection-none new-image) + + + (gimp-context-push) + (gimp-context-set-defaults) + + ; Przejdź przez każdy piksel obrazu + (while (< y height) + + (while (< x width) + (let* ( + (new-x (+ x (* amplitude (sin (+ (* frequency x) phase))))) + (new-y (+ y (* amplitude (cos (+ (* frequency y) phase))))) + (color (car (gimp-image-pick-color image drawable x y TRUE TRUE 1))) + (gimp-message-set-handler 0) + (display "color: ") (displayln color) + (gimp-drawable-set-pixel new-drawable new-x new-y color)) ) + (set! x (+ x 1)) + ) + (set! y (+ y 1)) + ) + + + (gimp-context-pop) + ;(gimp-image-merge-down new-image new-drawable CLIP-TO-IMAGE) + (gimp-display-new new-image) + + ;(gimp-image-undo-group-end image)) + (gimp-selection-none new-image) + + ;(gimp-displays-flush) + +) ) + +(define displayln (lambda (obj) (display obj) (display "\n"))) (script-fu-register "przem-apply-waves-effect" @@ -33,6 +79,9 @@ ;SF-ADJUSTMENT "Wave Length" '(50 0 100 1 10 0 0) ;SF-ADJUSTMENT "Phase Wave" '(0 0 100 1 10 0 0) ;SF-OPTION "Type" '("Sinusoidal" "Triangle" "Rectangular") + SF-VALUE "Amplitude" "10" + SF-VALUE "Frequency" "0.1" + SF-VALUE "Phase" "0" ) |