• In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs Januar 2025.
    Thema: "Kleidung, Stoffe, Textilien"

    Nur noch bis zum 31.01.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Unlauterer Verkäufer wieder unterwegs!

    Liebe Mitglieder,
    Florian Franzek, der seit Jahren mit verschiedensten Usernamen in allen möglichen Foren und auf etlichen Verkaufsplattformen auftritt,
    ist wieder hier im Forum und versucht, ehrliche Käufer zu betrügen.
    Wir können wenig tun, außer bei Bekanntwerden einer weiteren Registrierung eines Accounts für seine Machenschaften, diese umgehend zu sperren.
    Ich empfehle, bei Kontakt umgehend die Polizei einzuschalten.

WERBUNG

Automatischer Rahmer für Gimp

schnebeck

Themenersteller
Moin Gimper!

++++
EDIT 17.8.2004:
Ich habe Version 0.4 hochgeladen mit umfangreichen Änderungen:
  • neues Untermenü: Script-Fu->Border
  • drei Befehle zum Rahmen: 3D-Border, Inner Border, Outer Border
  • optionale 3D Schatten

Der alte Befehl Decor->Adv Border ist nun Border->Outer Border
Inner Border erlaubt die Erstellung von transparenten Innenrahmen mit einstellbarer Breite und einstellbaren Abstand vom Außenrand.
++++

Fraenkys Wunsch war Motivation das ultimative Gimp-Rahmenprogramm zu skripten. Während des Schreiben hatte ich schon etwas Feedback, so dass die hier veröffentlichte Version flexibel und, so hoffe ich, stabil genug ist.

Es ist ein recht umfangreiches Skript, das bei großen Bildern entsprechend lange braucht, um den Rahmen zu erstellen. Mal ein Richtwert: Auf meinem Athlon 1GHz braucht ein 3072x2048 Bild ca. 30 sec.

Möglichkeiten (siehe Bild 1)
  • drei Rahmenbereiche mit einstellbarer Breite und Farbe,
  • Textzeile mit drei Feldern für linksbündige, zentrierte und rechtsbündige Ausrichtung,
  • Textzeile hat einen wählbaren Zeichensatz und kann oben oder unten stehen,
  • jedes Textfeld hat eine wählbare Zeichensatzgröße
  • Wahl des Seitenverhältnisses für das gerahmte Bild mit automatischer Anpassung der vertikalen Rahmenstärke,
  • viele Kombinationsmöglichkeiten durch Deaktivierung eines Rahmenbereichs und
  • aufwändige aber sehr feine 3D-Schattierung an Rahmenübergängen

Parameter
Wie in Bild 1 zu erkennen ist, benötigt das Skript zur Ausführung eine Vielzahl von Parametern. Ihre Wirkung auf den zu erstellenden Rahmen kann am Besten mit Hilfe eines kleinen Testbildes ermittelt werden.

In der oberen Hälfte von Bild 1 erkennt man die Parameter für die Textzeile mit den drei Eingabefeldern. Unter jedem Eingabefeld kann man die Zeichensatzgröße einzeln einstellen. Darunter wählt man, ob die Textzeile unten oder oben erscheinen soll. Weitere Parameter für die Textzeile sind die Farbe und die Auswahl des zu verwendenden Zeichensatzes.

Üblicherweise wird der Text im äußeren Rahmenbereich vertikal mittig eingebunden. Wird mehr Platz für die Textzeile benötigt, so stellt man dies im Feld "Additional Text Space" ein. Praktisch bedeutet es, dass das Bild aus der vertikal mittigen Ausrichtung geschoben wird.

In der unteren Hälfte von Bild 1 erkennt man die Parameter für die drei Rahmenbereiche. Jeder Bereich hat seine individuelle Farbe und Breite. Zusätzlich kann man bei dem inneren und dem äußeren Rahmen die Breite separat horizontal und vertikal einstellen.

Eine Besonderheit stellt der letzte untere Parameter von Bild 1 dar: "H/V-Ratio". Hiermit legt man fest, ob das Ausgangsbild ein neues Seitenverhältnis gemäß den vorgegebenen Rahmenstärken erhält (wähle hierzu "as is"), ob das Seitenverhältnis des Ausgangsbildes beibehalten werden soll (wähle "Image") oder ob das Seitenverhältnis des gerahmten Bildes 3:2 bzw 4:3 betragen soll.

Wählt man eine der drei letztgenannten Optionen aus, wird die Breite des inneren und äußeren Rahmens in der Vertikalen nicht berücksichtigt, sondern gemäß der ausgewählten H/V-Ratio-Option berechnet. Dabei wird der zusätzliche Bereich für die Textzeile mit berücksichtigt.

Indem man die Breite eines Rahmenbereiches auf Null setzt, ist es möglich, eine Vielzahl von Rahmentypen zu erstellen.

Leider ist ein Abspeichern der vielen Parameter nicht möglich. Wer das will, kann aber Gimp im Batchbetrieb verwenden und die Parameter entsprechend der Liste fest vorgeben und übergeben.

Anpassungen
Ich empfehle dem Anwender, im unteren Teil das Skript nach persönlichen Vorlieben anzupassen. Wer will, kann in diesem Bereich das Skript auch eindeutschen.

Relevant hierfür sind die Zeilen, die mit "SF-" beginnen. Es folgt in Hochkomma der Begriff, wie er in Bild 1 erscheint. Für das Anpassen gelten folgende Bedingungen:

  • "SF-OPTION": Begriffe müssen ihre logische Reihnenfolge behalten! Ein Übersetzen ist möglich.
  • "SF-STRING": Das hintere Text in Hochkomma gibt den Vorgabewert an. "" entspricht somit einem Leertext.
  • "SF-COLOR": Der hintere Parameter entspricht einem RGB-Farbwert in der Form '(R G B).
  • "SF-ADJUSTMENT: Im etwas kompliziert aussehenden hinteren Parameter entspricht erste Wert nach der Klammer der Standdardeinstellung in Bild 1. Alle anderen Werte der Klammer bitte so lassen.

Installation
Installiert wird das Skript unter Unix/Linux in
~/.gimp/scripts/addadvborder.scm
(statt .gimp sind auch .gimp-1.x oder gimp-2.0 üblich)
Nach einem Auffrischen der Befehlsdatenbank (unter Gimp2: Xtns->Script-Fu->Refresh Scripts)
findet man den neuen Befehl
"Script-Fu/Decor/Add Adv. Border..." Auch dieses kann man natürlich anpassen. Man suche hierzu die entsprechende Zeile im unteren Bereich des Skriptes.

Das Skript verwendet keine Spezialitäten und sollte mit jedem Gimp laufen.


Das Skript ist 407 Zeilen lang und bestimmt nicht fehlerfrei. Es wird auch nicht jede Parameterkombination auf Plausibilität getestet, aber ich hoffe, dass das Skript stabil arbeitet :-) Fehler bitte melden!
Die weiteren Bilder zeigen Beispielrahmen.

Have a lot of fun

Thorsten

--
Zum vereinfachten Auswählen des untenstehenden Codes und Kopieren in eine Textdatei, kann man nachfolgenden Link verwenden:
https://www.dslr-forum.de/archive/index.php/t-12531.html

Code:
; advborder.scm
; 0.4 (2004-08-17)
; 0.3 (2004-08-14)
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
;
; Fancy Freaky Fraenky Borders ;-)
; If you select a fixed width to heigth ratio with the last
; parameter vertical borders are calculated automatically.
; 
; For printed text on border you can get more space with the
; "Additional Text Space" parameter.
;
; You get many different styles of borders when setting
; inner border, outer border or frame to zero.
 
; (C) 2004 by Thorsten Schnebeck (thorsten.schnebeck@gmx.net)
;
; copy this script to ~/.gimp/scripts/addadvborder.scm
; and in Gimp2: Xtns->Script-Fu->Refresh Scripts
; you will find these scripts in Script-Fu/Border/

(define (int x) (- (/ x 1) (/ (fmod x 1) 1)))

(define (set_path image pos pixel direction)
; direction: 0=left 1=right 2=top 3=bottom
    (let*
        (
            (height (car (gimp-image-height image)))
            (width  (car (gimp-image-width  image)))
            (n_array (cons-array 33 'double))
        )
        (if (or (= direction 0) (= direction 2))
            (begin ;left or top
                (aset n_array 00 pos)
                (aset n_array 01 pos)
                (aset n_array 02 1.0)
    
                (aset n_array 03 pos)
                (aset n_array 04 pos)
                (aset n_array 05 2.0)
                            
                (aset n_array 06 (+ pos pixel))
                (aset n_array 07 (+ pos pixel))
                (aset n_array 08 2.0)
    
                (aset n_array 09 (+ pos pixel))
                (aset n_array 10 (+ pos pixel))
                (aset n_array 11 1.0)
                
                (aset n_array 12 (+ pos pixel))
                (aset n_array 13 (+ pos pixel))
                (aset n_array 14 2.0)
            )
            (begin ; right or bottom
                (aset n_array 00 (- width pos))
                (aset n_array 01 (- height pos))
                (aset n_array 02 1.0)
    
                (aset n_array 03 (- width pos))
                (aset n_array 04 (- height pos))
                (aset n_array 05 2.0)
                
                (aset n_array 06 (- (- width pos) pixel))
                (aset n_array 07 (- (- height pos) pixel))
                (aset n_array 08 2.0)
    
                (aset n_array 09 (- (- width pos) pixel))
                (aset n_array 10 (- (- height pos) pixel))
                (aset n_array 11 1.0)
                
                (aset n_array 12 (- (- width pos) pixel))
                (aset n_array 13 (- (- height pos) pixel))
                (aset n_array 14 2.0)
            )
        )
        (if (or (= direction 0) (= direction 3))
            (begin ;left or bottom
                (aset n_array 15 (+ pixel pos))
                (aset n_array 16 (- (- height pos) pixel))
                (aset n_array 17 2.0)
    
                (aset n_array 18 (+ pixel pos))
                (aset n_array 19 (- (- height pos) pixel))
                (aset n_array 20 1.0)
                
                (aset n_array 21 (+ pixel pos))
                (aset n_array 22 (- (- height pos) pixel))
                (aset n_array 23 2.0)
            
                (aset n_array 24 pos)
                (aset n_array 25 (- height pos))
                (aset n_array 26 2.0)

                (aset n_array 27 pos)
                (aset n_array 28 (- height pos))
                (aset n_array 29 1.0)
  
                (aset n_array 30 pos)
                (aset n_array 31 (- height pos))
                (aset n_array 32 2.0)
            )
            (begin ;right or top
                (aset n_array 15 (- (- width pos) pixel))
                (aset n_array 16 (+ pixel pos))
                (aset n_array 17 2.0)
    
                (aset n_array 18 (- (- width pos) pixel))
                (aset n_array 19 (+ pixel pos))
                (aset n_array 20 1.0)
                
                (aset n_array 21 (- (- width pos) pixel))
                (aset n_array 22 (+ pixel pos))
                (aset n_array 23 2.0)
            
                (aset n_array 24 (- width pos))
                (aset n_array 25 pos)
                (aset n_array 26 2.0)

                (aset n_array 27 (- width pos))
                (aset n_array 28 pos)
                (aset n_array 29 1.0)
 
                (aset n_array 30 (- width pos))
                (aset n_array 31 pos)
                (aset n_array 32 2.0)
            )
        )
    n_array)
)


(define (select-border image pos pixel direction)
    (gimp-path-set-points image "frame" 1 33 (set_path image pos pixel direction))
    (gimp-path-to-selection image "frame" 0 0 0 0 0)
    (gimp-path-delete image "frame")
)


(define (image-grow image color left right top bottom)
    (let*
        (
            (restore   (car (gimp-palette-get-background)))
            (width     (car (gimp-image-width image)))
            (height    (car (gimp-image-height image)))
            (newwidth  (+ (+ width left) right))
            (newheight (+ (+ height top) bottom))
        )
        (gimp-palette-set-background color)
        (gimp-image-resize image newwidth newheight left top)
        (gimp-image-flatten image)
        (gimp-palette-set-background restore)
    )
)    
    
;from script-fu-beveled-pattern-fixedbutton:
(define (text-width extents)
    (car extents))

(define (text-height extents)
    (cadr extents))

(define (text-ascent extents)
    (caddr extents))

    
;########## script-fu ############

(define (script-fu-add-3d-border image drawable pos pixel type)
    (let*
        (
            (col_left   30)
            (col_right  60)
            (col_top    50)
            (col_bottom 40)
        )
        (set! pos   (int pos))
        (set! pixel (int pixel))
        (if (= type 0) 
            (begin
                (set! col_left   -20)
                (set! col_right  -50)
                (set! col_top    -40)
                (set! col_bottom -30)
            )
        )
        
        (gimp-image-undo-group-start image)
        
        (gimp-selection-clear image)
        (select-border image pos pixel 0 )
        (gimp-brightness-contrast (car (gimp-image-get-active-drawable image)) col_left 0)
        (gimp-selection-clear image)
        (select-border image pos pixel 1 )
        (gimp-brightness-contrast (car (gimp-image-get-active-drawable image)) col_right 0)
        (gimp-selection-clear image)
        (select-border image pos pixel 2 )
        (gimp-brightness-contrast (car (gimp-image-get-active-drawable image)) col_top 0)
        (gimp-selection-clear image)
        (select-border image pos pixel 3 )
        (gimp-brightness-contrast (car (gimp-image-get-active-drawable image)) col_bottom 0)
        (gimp-selection-clear image)
        
        (gimp-image-undo-group-end image)
        (gimp-displays-flush)     
    )
)

  
(define (script-fu-add-inner-border image drawable color gab pixel trans blur 3din 3dout)
    (let*
        (
            (height   (car (gimp-image-height image)))
            (width    (car (gimp-image-width image)))
            (restore  (car (gimp-palette-get-foreground)))
            (pxshadow (int (+ (/ (* height (/ width height)) 1000) 1)))
        )
        
        (gimp-image-undo-group-start image)
        
        (gimp-palette-set-foreground color)
        (gimp-selection-clear image)
        (select-border image gab pixel 0)
        (select-border image gab pixel 1)
        (select-border image gab pixel 2)
        (select-border image gab pixel 3)
        (if (> blur 0)
            (plug-in-gauss-iir2 1 image (car (gimp-image-get-active-drawable image)) blur blur)
        )
        (gimp-edit-bucket-fill (car (gimp-image-get-active-drawable image)) FG-BUCKET-FILL NORMAL-MODE (- 100 trans) 0 FALSE 0 0)
        (if (= 3din  0) (script-fu-add-3d-border image drawable (+ gab pixel) pxshadow 0))
        (if (= 3din  1) (script-fu-add-3d-border image drawable (+ gab pixel) pxshadow 1))
        (if (= 3dout 0) (script-fu-add-3d-border image drawable gab pxshadow 0))
        (if (= 3dout 0) (script-fu-add-3d-border image drawable gab pxshadow 1))         
        (gimp-palette-set-foreground restore)
        (gimp-selection-clear image)
        
        (gimp-image-undo-group-end image)
        (gimp-displays-flush)         
    )
)
    
(define (script-fu-add-outer-border image drawable text1 fs1 text2 fs2 text3 fs3 position ftcolor textspace font ibcolor ipxborderh ipxborderv fcolor pxframe obcolor opxborderh opxborderv ratio 3d)
    
    (let*
        (
            (restore (car (gimp-palette-get-foreground)))
            (height (car (gimp-image-height image)))
            (width (car (gimp-image-width image)))
            (pxshadow (int (+ (/ (* height (/ width height)) 1000) 1)))
            (nooborder 0)
            (ax  ipxborderh)
            (ay  ipxborderv)
            (bx  opxborderh)
            (by1 opxborderv)
            (by2 opxborderv)
            (text-extents (gimp-text-get-extents-fontname text1 fs1 1 font))
            (tx1width (text-width text-extents))
            (tx1height (text-height text-extents))
            (tx1ascent (text-ascent text-extents))
            (text-extents (gimp-text-get-extents-fontname text2 fs2 1 font))
            (tx2width (text-width text-extents))
            (tx2height (text-height text-extents))
            (tx2ascent (text-ascent text-extents))
            (text-extents (gimp-text-get-extents-fontname text3 fs3 1 font))
            (tx3width (text-width text-extents))
            (tx3height (text-height text-extents))
            (tx3ascent (text-ascent text-extents))
            (txdisplace  tx1ascent)
        )
        
        ; no outer border
        (if (= (+ bx by1) 0)
            (begin
                (set! bx ax)
                (set! by1 ay)
                (set! by2 ay)
                (set! ax 0)
                (set! ay 0)
                (set! obcolor ibcolor)
                (set! nooborder 1)
            )
        )
                    
        ; ipxborderv=opxborderv=0: ratio-mode
        (if (> ratio 0)
            (begin
                (if (= ratio 1) (set! newratio (/ height width)))
                (if (= ratio 2)
                    (if (> width height)
                        (set! newratio (/ 2 3))
                        (set! newratio (/ 3 2))
                    )
                )
                (if (= ratio 3)
                    (if (> width height)
                        (set! newratio (/ 3 4))
                        (set! newratio (/ 4 3))
                    )
                )
                (set! ay ax)
                (set! by2 (int (* (+ width (* 2 (+ (+ ax bx) pxframe))) newratio)))
                (set! by1 (int (- (- (/ (- (- by2 textspace) height) 2) ay) pxframe)))
                (set! by2 by1)   
            )
        )
        
        (if (= position 1)
            (set! by1 (+ by1 textspace))
            (set! by2 (+ by2 textspace))
        )
            
        (if (> tx2ascent txdisplace) (set! txdisplace tx2ascent))
        (if (> tx3ascent txdisplace) (set! txdisplace tx3ascent))
        
        (gimp-image-undo-group-start image)

        (if (= 3d TRUE) (script-fu-add-3d-border image drawable 0 pxshadow 0))

        ; draw inner border
        (if (= 3d TRUE)
            (begin
                (image-grow image ibcolor pxshadow pxshadow pxshadow pxshadow)
                (script-fu-add-3d-border image drawable 0 pxshadow 1)
                (set! ax (- ax pxshadow))
                (set! ay (- ay pxshadow))
                (if (< ax 1) (set! ax 0))
                (if (< ay 1) (set! ay 0))
            )
        )
        (image-grow image ibcolor ax ax ay ay)
        (if (= 3d TRUE) (script-fu-add-3d-border image drawable 0 pxshadow 1))

        (if (> pxframe 0)
            (if (= nooborder 0)
                (begin
                    ; draw frame
                    (if (= 3d TRUE) (script-fu-add-3d-border image drawable 0 pxshadow 0)) 
                    (image-grow image fcolor pxframe pxframe pxframe pxframe)
                    (if (= 3d TRUE) (script-fu-add-3d-border image drawable (- pxframe pxshadow) pxshadow 1))
                )
            )
        )
        
        ; draw outer border
        (image-grow image obcolor bx bx by1 by2)
        (if (= 3d TRUE) (script-fu-add-3d-border image drawable 0 pxshadow 1))
        
        (if (= nooborder 1)
            (begin
                ; draw frame
                (if (= 3d TRUE) (script-fu-add-3d-border image drawable 0 pxshadow 0)) 
                (image-grow image fcolor pxframe pxframe pxframe pxframe)
                (if (= 3d TRUE) (script-fu-add-3d-border image drawable (- pxframe pxshadow) pxshadow 1))
            )
        )
                
        ; text handling
        (set! height (car (gimp-image-height image)))
        (set! width (car (gimp-image-width image)))
        (if (= position 1)
            (set! txpos (/ by1 2))
            (set! txpos (- height (/ by2 2)))
        )
        (set! txpos (+ txpos (/ txdisplace 4)))
        
        ; text color
        (gimp-palette-set-foreground ftcolor)
        ; left text
        (if (> (string-length text1) 0) 
            (gimp-floating-sel-anchor (car (gimp-text-fontname image (car (gimp-image-get-active-drawable image)) bx (- txpos tx1ascent) text1 -1 TRUE fs1 1 font)))
        )
        ; centred text
        (if (> (string-length text2) 0) 
            (gimp-floating-sel-anchor (car (gimp-text-fontname image (car (gimp-image-get-active-drawable image)) (- (/ width 2) (/ tx2width 2)) (- txpos tx2ascent) text2 -1 TRUE fs2 1 font)))
        )
        ; right text
        (if (> (string-length text3) 0) 
            (gimp-floating-sel-anchor (car (gimp-text-fontname image (car (gimp-image-get-active-drawable image)) (- (- width bx) tx3width) (- txpos tx3ascent) text3 -1 TRUE fs3 1 font)))
        )
    
        (gimp-palette-set-foreground restore)
        (gimp-image-undo-group-end image)

        (gimp-displays-flush)
    )
)


(script-fu-register "script-fu-add-3d-border" 
"<Image>/Script-Fu/Border/Add 3D-Border..."
"3D Border"
"Thorsten Schnebeck"
"Thorsten Schnebeck (thorsten.schnebeck@gmx.net)"
"2004"
"*"
    SF-IMAGE         "Image"        0
    SF-DRAWABLE      "Drawable"     0
    SF-ADJUSTMENT    "Gab (px)"     '(00 0 500 1 10 0 0)
    SF-ADJUSTMENT    "Border (px)"  '(20 0 500 1 10 0 0)
    SF-OPTION        "Type"         '("dark" "light")
)


(script-fu-register "script-fu-add-inner-border" 
"<Image>/Script-Fu/Border/Add Inner Border..."
"Inner Border"
"Thorsten Schnebeck"
"Thorsten Schnebeck (thorsten.schnebeck@gmx.net)"
"2004"
"*"
    SF-IMAGE         "Image"                0
    SF-DRAWABLE      "Drawable"             0
    SF-COLOR         "Border Color"         '(000 000 000)
    SF-ADJUSTMENT    "Gab (px)"             '(00 0 500 1 10 0 0)
    SF-ADJUSTMENT    "Border (px)"          '(20 0 500 1 10 0 0)
    SF-ADJUSTMENT    "Border trans. (%)"    '(50 0 100 1 10 1 0)
    SF-ADJUSTMENT    "Border blur (px)"     '(2  0 100 1 10 0 0)
    SF-OPTION        "Inner 3D"             '("dark" "light" "none")
    SF-OPTION        "Outer 3D"             '("dark" "light" "none")
)


(script-fu-register "script-fu-add-outer-border" 
"<Image>/Script-Fu/Border/Add Outer Border..."
"Outer Border"
"Thorsten Schnebeck"
"Thorsten Schnebeck (thorsten.schnebeck@gmx.net)"
"2004"
"*"
    SF-IMAGE         "Image"                        0
    SF-DRAWABLE      "Drawable"                     0
    SF-STRING        "Text (left)"                  ""
    SF-ADJUSTMENT    "Font Size"                    '(20 8 100 1 10 0 1)
    SF-STRING        "Text (center)"                "Ein Teich"
    SF-ADJUSTMENT    "Font Size"                    '(64 8 100 1 10 0 1)
    SF-STRING        "Text (right)"                 "(c) 2004"
    SF-ADJUSTMENT    "Font Size"                    '(32 8 100 1 10 0 1)
    SF-OPTION        "Text Position"                '("Bottom" "Top")
    SF-COLOR         "Font Color"                   '(255 255 255)
    SF-ADJUSTMENT    "Additional Text Space (px)"   '(100 0 1000 5 10 0 0)
    SF-FONT          "Font"                         "Arial"
    SF-COLOR         "Inner Border Color"           '(000 000 000)
    SF-ADJUSTMENT    "Inner Border horiz (px)"      '(100 0 9000 5 10 0 0)
    SF-ADJUSTMENT    "Inner Border vert (px)"       '(100 0 9000 5 10 0 0)
    SF-COLOR         "Frame Color"                  '(255 255 255)
    SF-ADJUSTMENT    "Frame (px)"                   '(002 0 1000 1 10 0 0)
    SF-COLOR         "Outer Border Color"           '(000 000 000)
    SF-ADJUSTMENT    "Outer Border horiz (px)"      '(200 0 9000 5 10 0 0)
    SF-ADJUSTMENT    "Outer Border vert (px)"       '(200 0 9000 5 10 0 0)
    SF-OPTION        "H/V-Ratio"                    '("as is" "Image" "3:2" "4:3")
    SF-TOGGLE        "3D-Look"                      TRUE 
)
;Tab=4
 
Zuletzt bearbeitet:
Hallo Thorsten,

erstmal ein riesen Dankeschön für Deine Arbeit !

Leider gibts bei mir ne Fehlermeldung:

Error while executing
(script-fu-add-adv-border 1 2 "Left Text" 20 "Center Text" 25 "Right Text" 15 0 '(255 255 255) 80 "Arial" '(255 255 255) 45 45 '(255 255 255) 2 '(0 0 0) 50 50 0)
ERROR: unbound variable (errobj txdisplace)

Hab mal in die Textfelder "Left Text" "Center Text" und "Right Text" geschrieben.

Hast Du da eine Variable evtl nicht deklariert ?

LG Frank
 
Versuchs bitte nochmal, da hat sich wohl beim umfangreichen Editieren der Anleitung im Code ein Buchstabe zu viel eingeschlichen. Habs oben korrigiert.

Bye

Thorsten
 
Funzt ! Klasse !!

Muss mich da mal reinfummeln, das Ding kann ja wirklich fast alles.

Danke Thorsten.
 
So *einüberglücklicherfrank*

Wirklich klasse was das teil kann. Musste mich erstmal einfummeln da es Anfangs nicht so einfach ist :)

Was mich immer stört ist ein (c) und darum habe ich dieses gegen das Copyright Logo ausgetauscht. Die Problematik ist (zumindestens bei mir auf Linux) das Gimp UTF-8 benötigt als Kodierung der Zeichen. ISO 8859-15 ist aber mein System und ich will das auch so da ich sonst alle üs, ös, äs etc in ägyptischen Schriftzeichen sehe wenn ich eine Email von nem Winuser bekomme.
Also will man das so nutzen gibts nur eines. Öffnen des Editors (ich nehme Kate) laden des Scriptes respektive hier ausm Forum kopieren und dort einfügen. Ganz runter scrollen den Code ins deutsche Abändern und "Ansicht" UTF-8 als Kodierung einstellen. Speichern - Fertisch :)

Code:
SF-IMAGE         "Image"                        0
    SF-DRAWABLE      "Drawable"                     0
    SF-STRING        "Text (links)"                 ""
    SF-ADJUSTMENT    "Schriftgröße"                 '(30 8 100 1 10 0 1)
    SF-STRING        "Text (zentriert)"             ""
    SF-ADJUSTMENT    "Schrifgröße"                  '(36 8 100 1 10 0 1)
    SF-STRING        "Text (rechts)"                "© 2004"
    SF-ADJUSTMENT    "Schriftgrösse"	            '(15 8 100 1 10 0 1)
    SF-OPTION        "Text Position"                '("Unten" "Oben")
    SF-COLOR         "Schriftfarbe"                 '(255 255 255)
    SF-ADJUSTMENT    "Zus. Rahmen zum Textfeld (px)"'(20 0 1000 5 10 0 0)
    SF-FONT          "Schriftart"                   "Arial"
    SF-COLOR         "Innen Rahmenfarbe "           '(000 000 000)
    SF-ADJUSTMENT    "Innen Rahmen Horiz. (px)"     '(10 0 9000 5 10 0 0)
    SF-ADJUSTMENT    "Innen Rahmen Vert. (px)"      '(10 0 9000 5 10 0 0)
    SF-COLOR         "Rahmen Farbe"                 '(255 255 255)
    SF-ADJUSTMENT    "Kontrastrahmen (px)"          '(001 0 1000 1 10 0 0)
    SF-COLOR         "Äuss. Rahmenfarbe"            '(000 000 000)
    SF-ADJUSTMENT    "Äuss. Rahmen Horiz. (px)"     '(50 0 9000 5 10 0 0)
    SF-ADJUSTMENT    "Äuss. Rahmen Vert. (px)"      '(50 0 9000 5 10 0 0)
    SF-OPTION        "H/V-Ratio"                    '("Bild + Rahmen" "Bildratio angepasst" "3:2" "4:3")

Ist nur ein Beispiel wie ich es mir übersetzt habe.
Auch die Werte habe ich mir an meine Bedürfnisse angepasst da ich ja keine 3000 * 2000 Px Bilder rahmen will sondern nur die die ins Web kommen.

SF-STRING "Text (rechts)" "© 2004 Dein Name"

Spart auch ne Menge Tiparbeit :)

Für Winuser müsste es eigentlich auch ohne UTF-8 gehen. Einfach mal probieren, nach dem reload von FU-Scripten kommt eine Fehlermeldung mit der exakten beschreibung woran es lag.

Ich hoffe Thorsten das es OK ist wenn ich hier ein paar Tips und die Übersetzung reinschreibe.

LG Frank
 
Besteht die Moeglichkeit die Datei zum Download anzubieten? In der Form funtioniert C&P nicht richtig :(

klw
 
Vielen Dank :) Mein Vorschlag waere solche Skripte generell nicht in »width:640px; height:498px; overflow:auto« zu packen, sondern entweder direkt als Datei (falls das angeboten wird) oder einfach im Text. :)

klw
 
Aber sicher unterstütze ich Lokalisierungen und Erweiterungen! Sonst würde ich eine andere Lizenz wählen ;-)

Ein paar Hinweise:

H/V-Ratio=Seitenverhältnis
"Bild+Rahmen" -> besser -> "wie angegeben"
"Bildratio angepasst" -> besser -> "wie im Bild"

Geizkragen! Zippt der einfach die Dateien ;-)

So fraenky, jetzt das Ganze in ein Batchscript packen, Rahmenbeschriftung aus den EXIFs und rüber über die Verzeichnisse ;-)

Bye

Thorsten
 
@klw

Leider kann man nur JPGs hochladen und keine Textdateien. Wenn ich 's als Text reinpacke, dann sind 407 Zeilen richtig lang! Die Formatierung des Code-Tags macht die Forumsoftware.

Bye

Thorsten
 
schnebeck schrieb:
Aber sicher unterstütze ich Lokalisierungen und Erweiterungen! Sonst würde ich eine andere Lizenz wählen ;-)

Ein paar Hinweise:

H/V-Ratio=Seitenverhältnis
"Bild+Rahmen" -> besser -> "wie angegeben"
"Bildratio angepasst" -> besser -> "wie im Bild"

Geizkragen! Zippt der einfach die Dateien ;-)

So fraenky, jetzt das Ganze in ein Batchscript packen, Rahmenbeschriftung aus den EXIFs und rüber über die Verzeichnisse ;-)

Bye

Thorsten


Batch ?? Jetzt wirds spannend :D

Hab das Script angepasst mit Deinen Übersetzungswünschen. Einfach den Link von vorhin (Deutsch) ziehen (ja wieder als .zip *gg ) und drüberbügeln. Mir ist da keine bessere Übersetzung eingefallen.

Hier ist ein Screeni von dem Hammerscript
 
Zuletzt bearbeitet:
Hübscher Rahmen :-)

Sollte das Bild den aktuellen Übersetzungsstand wiedergeben, so steht da immernoch "H/V-Ratio" und oben einmal "Schrif_größe"
Ist der Menüpfad eigentlich auch einzudeutschen (Decor->Dekor)? Bei mir ist der auch mit deutschen Menüs in Englisch(?)

Bye

Thorsten
 
So habs neu hochgeladen (editiert) <-- Screenshoot
Auf die schnelle da ich gleich mit meiner Süßen ins Kino muss.

Den Rest im Script habe ich auch geändert. Das waren die Probs mit UTF und ISO da hatte es mir einiges zusammengehaun und dann habe ich das leider übersehen.

Seitenverhältnis hatte ich einfach übersehen.

Einfach im anderen Post nochmal saugen, ist die neue Version :)

Ich hab schon einige Ideen wie man das ganze noch erweitern kann.
Später mehr :)
Will da auch bebilderte Beispiele bringen.
 
@klw

Suche die Funktion:

(define (3d-border image pixel type)
)

und lösche alles, was zwischen den Klammern steht, so dass es so aussieht, wie da oben. Ich kann ja noch eine weitere Option einbauen, so dass man die Wahl hat.

@flaenky
Mir schwant Grauenvolles ;-)

Bye

Thorsten
 
Zuletzt bearbeitet:
schnebeck schrieb:
@klw

Suche die Funktion:

(define (3d-border image pixel type)
)

und lösche alles, was zwischen den Klammern steht, so dass es so aussieht, wie da oben. Ich kann ja noch eine weitere Option einbauen, so dass man die Wahl hat.
Ich habe mittlerweile einfach mal die Aufrufe auskommentiert. Hm, waere ja eigentlich leicht ne Option draus zu machen :)

klw
 
Weißt du eigentlich, dass mich das zwei Tage gekostet hat, diese Rahmen so schick zu erzeugen? Außerdem ist das Skript jetzt viel zu schnell. ;-)

Du solltest zusätzlich die Zeilen
(pxshadow (+ (/ (* height (/ width height)) 1000) 1))
(hshadows 4)
(vshadows 4)

ersetzen durch
(pxshadow 0)
(hshadows 0)
(vshadows 0)

Bye

Thorsten
 
schnebeck schrieb:
Weißt du eigentlich, dass mich das zwei Tage gekostet hat, diese Rahmen so schick zu erzeugen? Außerdem ist das Skript jetzt viel zu schnell. ;-)
Einfach im Hintergrund gimp kompilieren lassen ;)
schnebeck schrieb:
Du solltest zusätzlich die Zeilen
(pxshadow (+ (/ (* height (/ width height)) 1000) 1))
(hshadows 4)
(vshadows 4)

ersetzen durch
(pxshadow 0)
(hshadows 0)
(vshadows 0)
Tnx :) Wie waere es mit einer Checkbox: »Add 3D-Border [x]«?
Dann koennte man sich jedesmal aussuchen ob man 3D haben will oder nicht :)
Den entsprechenden Code sollte man doch einfach verzweigen koennen... (If... else...)

klw
 
Ich warte mal ab, was fraenky noch für freakige Ideen aus dem Kino mitbringt. Ansonsten wird V0.4 eine Checkbock bekommen ;-)

Stören euch die vielen Parameter nicht??

Bye

Thorsten
 
WERBUNG
Zurück
Oben Unten