Vorher-/Nachher-Bild Script

vkyr
Beiträge: 44
Registriert: Mi 27. Feb 2013, 16:38
Skype:
Kontaktdaten:

Vorher-/Nachher-Bild Script

Beitragvon vkyr » Sa 2. Mär 2013, 18:49

Hallo,

hier anbei ist ein kleines Script um schnell Vorher-/Nachher-Bilder (Engl.: before & after images) in einer angegebenen Pixelbreite erstellen zu können. Dieses Script arbeitet mit bereits zuvor in Gimp geöffneten Bildern, d.h. man sollte also zumindest zwei Bilder bzw. Fotos in Gimp geöffnet haben bevor man das Script benutzt. Bei mehreren geöffneten Bildern (also mehr als zwei) lassen sich die jeweiligen links und rechts bzw. oben und unten anzuzeigenden Bilder auswählen.

Das Script legt zwei neue Menüpunkte in Gimp an, einmal um jeweils ein neues Bild dann in Form von zwei Fotos nebeneinander oder halt zwei Bildern untereinander in gewünschter Pixelbreite zu erzeugen. Es erstellt auch gleich zwei zugehörigen "Vorher" und "Nachher" Textebenen auf dem neuen kombinierten Bild in der jeweils zuvor ausgewähltem Schriftart, Schriftgröße und Farbe. Die Ebenen werden nicht zusammengeführt damit man die Textebenen im Anschluss noch frei anderswo platzieren kann. Letzteres ist bei Fotos etc. je nach den darin enthaltenen hell-dunkel Regionen oft notwendig damit eine gewisse Schriftfarbe überhaupt irgendwo auf dem Bild bzw. Foto zur Geltung kommt. - Die beiden jeweils ausgewählten Bilder werden auf dem neu erzeugten Bild so skaliert das deren ursprünglicher "Aspect Ratio" beibehalten wird!

Viel Spaß damit wünscht

vkyr


Hier das "before-after-image.scm" Script:

Code: Alles auswählen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; before-after-image.scm - v0.1 - 01 Oktober 2012
;
; Ein Vorher-Nachher-Bild Script um zwei Bilder nebeneinander oder
; untereinander zu Platzieren.
;
; Dieses Script legt zwei Gimp Menüpunkte an!


; Kopiert die oberste skalierte Ebene eines inimage als neue Ebene eines outimage.
(define (vk-copy-scaled-layer inimage outimage nwidth nheight xoff yoff)
  (let* (
   (layer-in (car (gimp-image-get-active-layer inimage)))
   (layer-out (car (gimp-layer-new outimage nwidth nheight RGB-IMAGE "copy" 100 0)))
  )
    (gimp-image-add-layer outimage layer-out 0)
    (gimp-selection-all inimage)
    (gimp-edit-copy layer-in)
    (let ((tmp (car (gimp-edit-paste layer-out 0)))
   )
      (gimp-layer-set-offsets tmp 0 0)
      (gimp-layer-scale tmp nwidth nheight 0)
      (gimp-floating-sel-anchor tmp)
     )
    (gimp-layer-set-offsets layer-out xoff yoff)
   )
)

; Berechnet den aspect ratio der aktiven Ebene eines Bildes
(define (vk-aspect-ratio image)
  (let* (
   (layer (car (gimp-image-get-active-layer image)))
   (ratio (/ (car (gimp-drawable-width layer)) (car (gimp-drawable-height layer))))
  )
    ratio
   )
)

; Einen Textlayer erstellen und positionieren
(define (vk-add-text-layer image in-text in-font in-font-size in-text-color posx posy)
  (let* ((text-layer 0))
    (gimp-context-set-foreground in-text-color)
    (set! text-layer (car  (gimp-text-fontname
                              image -1
                              0 0
                              in-text
                              0
                              TRUE
                              in-font-size PIXELS
                              in-font)
                        ))
    (gimp-layer-set-offsets text-layer posx posy)
    (gimp-image-raise-item-to-top image text-layer)
  )
)

; Plaziert zwei Vorher-Nachher-Bilder nebeneinander in einer Reihe für eine angegebene Pixelbreite
(define (vk-before-after-row width image1 image2 vtext ntext font fsize fcolor)
  (let* ((ratio1 (vk-aspect-ratio image1))
   (ratio2 (vk-aspect-ratio image2))
   (height2 (/ width (+ ratio1 ratio2)))
   (width1 (* height2 ratio1))
   (width2 (* height2 ratio2))
   (newimage (car (gimp-image-new width height2 0))) ; Erzeuge neues RGB image
   )
    (gimp-image-undo-disable newimage)
    (vk-copy-scaled-layer image1 newimage width1 height2 0  0) ; Kopiere image1 nachoben links
    (vk-copy-scaled-layer image2 newimage width2 height2 width1 0) ; Kopiere image2 nach oben mittig
    (vk-add-text-layer newimage vtext font fsize fcolor 30 30)     ; Vorher Textlayer hinzufügen
    (vk-add-text-layer newimage ntext font fsize fcolor (+ width1 30) 30)  ; Nachher Textlayer hinzufügen
    (gimp-image-undo-enable newimage)
    (gimp-display-new newimage)  ; Zeige neues image
    )
  )         
 
; Plaziert zwei Vorher-Nachher-Bilder untereinander in einer Spalte für eine angegebene Pixelbreite
(define (vk-before-after-column width image1 image2 vtext ntext font fsize fcolor)
  (let* ((ratio1 (vk-aspect-ratio image1))
   (ratio2 (vk-aspect-ratio image2))
   (height1  (/ width ratio1))
   (height2  (/ width ratio2))
   (newimage (car (gimp-image-new width (+ height1 height2) 0)))
   )
    (gimp-image-undo-disable newimage)
    (vk-copy-scaled-layer image1 newimage width height1 0 0) ; Kopiere image1 nach oben
    (vk-copy-scaled-layer image2 newimage width height2 0 height1) ; Kopiere image2 nach unten   
    (vk-add-text-layer newimage vtext font fsize fcolor 30 30)     ; Vorher Textlayer hinzufügen
    (vk-add-text-layer newimage ntext font fsize fcolor 30 (+ height1 30))  ; Nachher Textlayer hinzufügen
    (gimp-image-undo-enable newimage) 
    (gimp-display-new newimage)  ; Zeige neues image
    ) 
  )

; Registrierung 1
(script-fu-register "vk-before-after-row"
   "<Image>/Scripts/Before-After/Vorher & Nacher Bild nebeneinander..."
   "Platziert zwei Bilder nebeneinander in einem neuen Bild angegebener Breite. Skaliert die Bilder zu gleicher Höhe unter Beibehaltung des aspect ratios. Die Bilder müssen zuvor geöffnet sein."
   "vkyr"     
   "2012 vkyr"   
   "1 Oktober 2012"
   ""
   SF-ADJUSTMENT "Neue Bildbreite" '(800 10 8000 10 10 0 1)
   SF-IMAGE   "Linkes Bild"  0
   SF-IMAGE   "Rechtes Bild" 1
   SF-STRING  "Vorher-Text" "Vorher"
   SF-STRING  "Nachher-Text" "Nachher"     
   SF-FONT    "Schriftart" "Trebuchet MS"   
   SF-ADJUSTMENT  "Schriftgroesse"   '(40 1 1000 1 10 0 1)   
   SF-COLOR   "Schriftfarbe"    '(78 78 78)
  )

; Registrierung 2
(script-fu-register "vk-before-after-column"
   "<Image>/Scripts/Before-After/Vorher & Nacher Bild untereinander..."
   "Platziert zwei Bilder untereinander in einem neuen Bild angegebener Breite. Skaliert die Bilder unter Beibehaltung des aspect ratios. Die Bilder müssen zuvor geöffnet sein."
   "vkyr"     
   "2012 vkyr"   
   "1 Oktober 2012"
   ""
   SF-ADJUSTMENT "Neue Bildbreite" '(800 10 8000 10 10 0 1)
   SF-IMAGE   "Oberes Bild"  0
   SF-IMAGE   "Unteres Bild" 1
   SF-STRING  "Vorher-Text" "Vorher"
   SF-STRING  "Nachher-Text" "Nachher"     
   SF-FONT    "Schriftart" "Trebuchet MS"   
   SF-ADJUSTMENT  "Schriftgroesse"   '(40 1 1000 1 10 0 1)   
   SF-COLOR   "Schriftfarbe"    '(78 78 78)
  )


Benutzeravatar
do-se
Beiträge: 4700
Registriert: Mi 7. Apr 2010, 19:48
Skype:
Wohnort: bei München
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon do-se » So 3. Mär 2013, 19:59

Das funkt ja prächtig. :spitze:
Mehrfach angewendet kann man sich richtige Tapeten kreieren.

Für meine Zwecke habe ich die zwei Registrierungs-Zeilen umgeändert in:

Code: Alles auswählen

; Registrierung 1
    (script-fu-register "vk-before-after-row"
       "<Image>/Image/Before-After/Vorher & Nacher Bild nebeneinander..."


..sonst wird mir meine Gimp-Kopfzeile irgendwann zu lange. ;)
#
Galerie alt und Galerie neu
Hier gibt es unsere selbstgebastelten Smileys
Bild

vkyr
Beiträge: 44
Registriert: Mi 27. Feb 2013, 16:38
Skype:
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon vkyr » So 3. Mär 2013, 21:47

Wo man das am Besten und Passendsten in die Gimp-Menüs einbaut ist jedem selbst überlassen, das sollte eh jeder so anpassen wie er es gerne hätte! - Bei mir landen meine eigenen Skripte halt meist immer unter Scripts, quasi als Trennung von anderem Zeug. Wobei das Menü bald schon überquillt.

Nun ja mit Tapeten kann ich nicht dienen, aber irgendwo habe ich noch Diptych, Triptych etc. Zusammenstellungen für 2 bis 6 Fotos. Ich glaube das war seinerzeit mal mit das allererste was ich mir mittels Script-Fu gebastelt hatte.

Benutzeravatar
Jacky
Beiträge: 4321
Registriert: Do 8. Sep 2011, 21:08
Skype:
Wohnort: Südharz
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon Jacky » Mo 4. Mär 2013, 13:57

Könnte Ihr mal ein Ergebnis vom Script zeigen, das man sich was sich dahinter verbirgt....?
#Bild
Bild
Bild

Wer Rechtschreibfehler findet, kann sie behaltenFeedback erwünscht!

Benutzeravatar
do-se
Beiträge: 4700
Registriert: Mi 7. Apr 2010, 19:48
Skype:
Wohnort: bei München
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon do-se » Mo 4. Mär 2013, 14:24

Ich hole mal das Beispielbild vom Matte color photo effect Script herüber. ;)

#

Zwei Bilder werden zu einem "zusammen gestrickt" :kicher:
#
Galerie alt und Galerie neu
Hier gibt es unsere selbstgebastelten Smileys
Bild

Benutzeravatar
Jacky
Beiträge: 4321
Registriert: Do 8. Sep 2011, 21:08
Skype:
Wohnort: Südharz
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon Jacky » Mo 4. Mär 2013, 14:43

DANKE do-se
#Bild
Bild
Bild

Wer Rechtschreibfehler findet, kann sie behaltenFeedback erwünscht!

vkyr
Beiträge: 44
Registriert: Mi 27. Feb 2013, 16:38
Skype:
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon vkyr » Mo 4. Mär 2013, 20:57

Generell eignen sich solche Vorher-/Nachher Bilder (engl. common usage: Before & After image) immer ganz gut um die Ergebnisse einer Bildretusche oder halt die Anwendung spezifischer Filter visuell zu verdeutlichen. Letztendlich eine Art der Gegenüberstellung von Ausgangsbild versus Endresultat!

#

Benutzeravatar
abraess
Beiträge: 63
Registriert: Mi 7. Apr 2010, 22:08
Skype:

Re: Vorher-/Nachher-Bild Script

Beitragvon abraess » Mo 4. Mär 2013, 22:46

Hallo ich mal Frage müssen die Bild wirklich beide gleich groß sein? Weil für mich als wäre diese Script für Bilder die bei deviantART auch als "draw it again" bekannt sind, zum Vergleich wie mich entwickelt habe. :) Ich habe auch von andren Bilder verschiedenversion die man so besser vergleichen könnte.
Andreas Braess

vkyr
Beiträge: 44
Registriert: Mi 27. Feb 2013, 16:38
Skype:
Kontaktdaten:

Re: Vorher-/Nachher-Bild Script

Beitragvon vkyr » Di 5. Mär 2013, 16:12

Probier es doch einfach einmal aus, wie heißt es doch gleich so schön ...

...Versuch macht klug...


...oder so ähnlich. - Letztendlich ist nur wichtig das Dir die jeweilig erstellte Anordnung gefällt, ob die zusammengefassten Bilder nun gleich groß sind oder nicht spielt dabei weniger eine Rolle!

Benutzeravatar
abraess
Beiträge: 63
Registriert: Mi 7. Apr 2010, 22:08
Skype:

Re: Vorher-/Nachher-Bild Script

Beitragvon abraess » Di 5. Mär 2013, 22:54

Ich frag das weil das skript bei mir wir mir mit Fehler ausgestiegen ist. # Die Bild die ich benutzt habe will ich nicht zeigen , weil sie nicht mir gehören. Vielleicht brauche ich auch nur Anleitung für Dummis. :)
Danke Andreas Braess


Zurück zu „Scripte und Filter/Plugins“



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast