Forum Wiki Galerie Kontakt Wie man Fragen richtig stellt. Tutorial Forum
Zurück   GIMP-Forum 3.0 > Arbeiten mit Gimp > GIMP-Ressourcen > Skripte

Hinweise
Alt 03.08.2006, 12:43   #1
flashnfantasy
Erfahrener Benutzer
 
Benutzerbild von flashnfantasy
 
Registriert seit: 14.05.2004
Beiträge: 380
Standard Wasserzeichen

Der folgende Script soll ein Wasserzeichen auf dem Bild aufbringen.

Dabei unterscheide ich zwischen 2 Arten vom Aufbringen:
- es soll erkennbar sein, wer dieses Bild erzeugt hat (Signatur)
- das Bild soll auch ausschnittsweise unbrauchber gemacht werden für eine Reproduktion (Watermark)

Die meisten Wasserzeichen kann man sehr schwach auftragen, sie können durch selektives Schärfen relativ simpel wieder sichtbar gemacht werden.

Code:
(script-fu-register "script-fu-copyright"
                    _"<Image>/Script-Fu/Utils/Copyright"
                    "copyright"
                    "Mathias Weitz"
                    "Mathias Weitz"
                    "18/07/06"
                    ""
                    SF-IMAGE "Image" 0
                    SF-DRAWABLE "Drawable" 0
                    SF-STRING     _"Text"   "image copyright by ..."
                    SF-FONT       _"Font"   "Arial"
                    SF-OPTION     _"Effect" '(_"Relief (very weak)"
                                              _"Emboss (strong)"
                                              _"Emboss soft (weak)"
                                              _"Screen (weak, dark Images)"
                                              _"Difference (weak, dark and bright Images)")
                    SF-OPTION     _"Style" '(_"All Over 4:3"
                                             _"All Over 1:1"
                                              _"Bottom Left")
                    SF-ADJUSTMENT _"Depth" '(2 1 10 1 1 0 0)
                    )

(define (script-fu-copyright image drawable descr font effect style depth)
  ;(gimp-image-undo-disable image)

  (set! dimendiv 20)
  (set! fsoft 1)
  (set! mode 1)

  (set! ddimendiv (/ (car (gimp-image-height image)) dimendiv))
  (set! dimenmax (max (car (gimp-image-height image)) (car (gimp-image-width image))))
  (set! fsoft (/ dimenmax 200))
  (set! ffsoft (/ dimenmax 500))

  (set! fontdim (gimp-text-get-extents-fontname descr (/ (car (gimp-image-height image)) dimendiv) 0 font))
  (set! fontdimx (car fontdim))
  (set! fontdimy (cadr fontdim))
  (set! descrx 0)
  (set! descry 0)

  (if (= style 2)
  (begin
    (set! descrx (- (car (gimp-image-width image)) fontdimx))
    (set! descry (- (car (gimp-image-height image)) fontdimy))
    (set! descrx (- descrx ddimendiv))
  ))

  (if (or (= style 0) (= style 1))
  (begin
    (set! descrx (/ (- (car (gimp-image-width image)) fontdimx) 2))
    (set! descry (/ (- (car (gimp-image-height image)) fontdimy) 2))
  ))

  (gimp-palette-set-foreground '(0 0 0))


  (if (or (= style 0) (= style 1))
  (begin
    (set! nlayer (car (gimp-layer-new image (car (gimp-image-width image)) (car (gimp-image-height image)) 1 "nlayer" 100 0)))
    (gimp-image-add-layer image nlayer 0)
    (gimp-edit-fill nlayer 2)
  ))

  (set! tlayer (car (gimp-layer-new image (car (gimp-image-width image)) (car (gimp-image-height image)) 1 "tlayer" 100 0)))
  (gimp-image-add-layer image tlayer 0)
  (gimp-edit-fill tlayer 2)
  (set! textlayer (car (gimp-text-fontname image -1 descrx descry descr 0 TRUE ddimendiv 0 font)))
  (set! work (car (gimp-image-merge-down image textlayer 0)))

  (if (or (= style 0) (= style 1))
  (begin
    (if (= style 0)
      (gimp-drawable-transform-rotate work 5.77 1 0 0 1 0 2 1 3 1)
    )
    (if (= style 1)
      (gimp-drawable-transform-rotate work 5.65 1 0 0 1 0 2 1 3 1)
    )
    (set! work (car (gimp-image-merge-down image work 0)))

    (set! l1 (car (gimp-layer-copy work 0)))
    (gimp-image-add-layer image l1 0)
    (gimp-drawable-offset l1 1 1 (/ (car (gimp-image-width image)) 3) 0)
    (gimp-layer-set-mode l1 3)
    (set! l2 (car (gimp-layer-copy work 0)))
    (gimp-image-add-layer image l2 0)
    (gimp-drawable-offset l2 1 1 (* (/ (car (gimp-image-width image)) 3) 2 ) 0)
    (gimp-layer-set-mode l2 3)
    (set! work (car (gimp-image-merge-down image l1 0)))
    (set! work (car (gimp-image-merge-down image l2 0)))

    (set! l1 (car (gimp-layer-copy work 0)))
    (gimp-image-add-layer image l1 0)
    (gimp-drawable-offset l1 1 1 0 (/ (car (gimp-image-height image)) 6))
    (gimp-layer-set-mode l1 3)
    (set! l2 (car (gimp-layer-copy work 0)))
    (gimp-image-add-layer image l2 0)
    (gimp-drawable-offset l2 1 1 0 (* (/ (car (gimp-image-height image)) 6) 5))
    (gimp-layer-set-mode l2 3)
    (set! work (car (gimp-image-merge-down image l1 0)))
    (set! work (car (gimp-image-merge-down image l2 0)))
  ))

  (if (= effect 0)
  (begin
    (plug-in-emboss 1 image work 30 45 10 1)
    (gimp-layer-set-mode work 5)

    (define (aR)
      (let* ((a (cons-array 6 'byte)))
      (set-pt a 0 0 0)
      (set-pt a 1 180 127)
      (set-pt a 2 255 255)
    a))
    (gimp-curves-spline work 0 6 (aR))
    (gimp-layer-set-opacity work (* 10 depth))
    (plug-in-gauss-iir2 1 image work fsoft fsoft)
    (set! work (car (gimp-image-merge-down image work 0)))
  ))

  (if (= effect 1)
  (begin
    (plug-in-bump-map 1 image drawable work 135 45 depth 0 0 0 0 1 0 1)
    (gimp-image-remove-layer image work)
    (set! work drawable)
  ))

  (if (= effect 2)
  (begin
    (plug-in-gauss-iir2 1 image work fsoft fsoft)
    (plug-in-bump-map 1 image drawable work 135 65 depth 0 0 0 0 1 1 1)
    (gimp-image-remove-layer image work)
    (set! work drawable)
  ))

  (if (= effect 3)
  (begin
    (gimp-layer-set-mode work 4)
    (define (aR)
      (let* ((a (cons-array 4 'byte)))
      (set-pt a 0 0 128)
      (set-pt a 1 255 0)
    a))
    (gimp-curves-spline work 0 4 (aR))
    (gimp-layer-set-opacity work (* 10 depth))
    (plug-in-gauss-iir2 1 image work ffsoft ffsoft)
    (set! work (car (gimp-image-merge-down image work 0)))
  ))

  (if (= effect 4)
  (begin
    (gimp-layer-set-mode work 6)
    (define (aR)
      (let* ((a (cons-array 4 'byte)))
      (set-pt a 0 0 128)
      (set-pt a 1 255 0)
    a))
    (gimp-curves-spline work 0 4 (aR))
    (gimp-layer-set-opacity work (* 10 depth))
    (plug-in-gauss-iir2 1 image work fsoft fsoft)
    (set! work (car (gimp-image-merge-down image work 0)))
  ))
  (gimp-image-set-active-layer image work)
  (gimp-image-clean-all image)
  (gimp-displays-flush)
  ;(gimp-image-undo-enable image)
)
__________________
meine Website
flashnfantasy ist offline   Mit Zitat antworten
 

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:25 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.