; apply-waves-effect - Script-fu dodający efekt fali ; author: PRP ; licencja: Public Domain ; Gdańsk - 26-02-2025 ; 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 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" _"Apply a waves effect to the image." _"Dodaje efekt fali do zdjęcia" "Przenmysław R. Pietraszczyk" "Public Domain" "2025-02-23" "RGB*, GRAY*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 ;SF-ADJUSTMENT "Amplitude" '(10 0 100 1 10 0 0) ;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" ) (script-fu-menu-register "przem-apply-waves-effect" "/Filters/PIETRASZCZYK")