Hi!
Ich arbeite zur Zeit an einem Jump'n'Run und da brauchte ich zwei Funktionen, die ich in Gimp nicht gefunden habe:
1. Einen automatischen Raster aus Hilfslinien mit einstellbarer Auflösung.
2. Eine Funktion, die ein Großen Bild in Tiles aufteile und diese automatisch speichert. !Ohne jedes Bild extra zu öffnen!
Als ich bei meinem Recherchen feststellte, dass man in Gimp kinderleicht selber Funktionen erstellen kann, war für mich klar, wie ich zu meinen Funktionen komme
Ich kann mir vorstellen, dass ausser mir diese Funktionen auch jemand brauchen kann und deshalb möchte ich sie hier im Forum zur Verfügung stellen.
gridguide:
Code:
(define (script-fu-gridguide image drawable xspace yspace xoff yoff remove)
(if (= remove 1) (script-fu-guides-remove image drawable))
(createvguides image drawable xoff xspace)
(createhguides image drawable yoff yspace)
)
(define (createvguides image drawable pos step)
(if (<= pos (car (gimp-image-width image)))
(begin
(gimp-image-add-vguide image pos)
(createvguides image drawable (+ pos step) step)
)
)
)
(define (createhguides image drawable pos step)
(if (<= pos (car (gimp-image-height image)))
(begin
(gimp-image-add-hguide image pos)
(createhguides image drawable (+ pos step) step)
)
)
)
(script-fu-register "script-fu-gridguide"
_"_Gridguide"
_"Creates a grid of guids"
"Michael Lueftenegger"
"2008, Michael Lueftenegger, http://www.lueftenegger.at"
"Okt 26, 2008"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-VALUE "x space" "8"
SF-VALUE "y space" "8"
SF-VALUE "x offset" "0"
SF-VALUE "y offset" "0"
SF-TOGGLE "first remove all guides?" TRUE
)
(script-fu-menu-register "script-fu-gridguide"
"<Image>/Image/Guides")
gridslice:
Code:
(define (script-fu-gridslice image drawable xspace yspace folder prefix)
(iterate-image image drawable 0 0 xspace yspace folder prefix 1 1)
(gimp-message "finish!")
)
(define (iterate-image image drawable x y width height folder prefix line column)
; (gimp-message (string-append (number->string x) "x" (number->string x) ":" (number->string width) "x" (number->string height)))
(let*
(
(name (string-append folder "/" prefix "_" (number->string line) "_" (number->string column) ".png"))
)
(safe-part image drawable x y width height name)
(set! x (+ x width))
(set! column (+ column 1))
(if (> x (car (gimp-image-width image)))
(begin
(set! column 1)
(set! y (+ y height))
(set! line (+ line 1))
(set! x 0)
)
)
(if (< y (car (gimp-image-height image)))
(iterate-image image drawable x y width height folder prefix line column)
)
)
)
(define (safe-part image drawable x y width height name)
(let*
((newimage 0))
(gimp-selection-none image)
(gimp-rect-select image x y width height 0 FALSE 0)
(gimp-edit-copy-visible image)
(gimp-edit-copy drawable)
(set! newimage (car (gimp-edit-paste-as-new)))
(file-png-save-defaults
1
newimage
(car (gimp-image-get-active-drawable newimage))
name
name
)
)
)
(script-fu-register "script-fu-gridslice"
_"_Gridslice"
_"slices the picture and saves the parts as PNGs."
"Michael Lueftenegger"
"2008, Michael Lueftenegger, http://www.lueftenegger.at"
"Okt 26, 2008"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-VALUE "x space" "20"
SF-VALUE "y space" "20"
SF-STRING "folder" "C:/temp/giana"
SF-STRING "file name prefix" "img"
)
(script-fu-menu-register "script-fu-gridslice"
"<Image>/Image/Guides")
lg,
misch