flashnfantasy
03.11.2004, 22:31
Das ist erstmal noch nicht viel, aber ein Ansatz.
Das Bild wird aufgeteilt in mehrere gleichgrosse Kacheln, die dann übereinandergelegt werden.
Dabei werden verschiedene Kombinationsarten verwendet, so daß ein Bild entsteht, das man für eine Textur verwenden kann.
Folgende Konbinationsarten gibt es.
Multiply Verwenden den Ebenenmodus Multiply
Normal Dec Ebenenmodus Normal, dabei wird die Transparenz für jedes Teilbild reduziert nach der Formel 100/i, wobei i für den Zähler der Ebene steht
Darken Verwendet den Ebenenmodus Darken
Normal Ebenenmodus Normal, hier kann (und muss) mit Transparenz im Hauptbild gearbeitet werden. Dieser Modus ist wohl noch Ausbaufähig, da es hier auf die Reihenfolge der Kacheln ankommt, und die momentan gewählte Reihenfolge bewirkt, daß die Kachel unten rechts ganz oben liegt.
Trotz allem, ich wünsche viel Spaß mit dem Spielen...
http://gimpforum.de/album_pic.php?pic_id=285
(define (script-fu-cutto image
drawable
dsizex
dsizey
mode)
(gimp-undo-push-group-start image)
(set! usizex (car (gimp-image-width image)))
(set! usizey (car (gimp-image-height image)))
(set! sizex (/ (car (gimp-image-width image)) dsizex))
(set! sizey (/ (car (gimp-image-height image)) dsizey))
;Arbeitskopie herstellen
(set! image-work (car (gimp-image-new sizex sizey RGB)))
(gimp-image-undo-disable image-work)
(set! image-new-layer (car (gimp-layer-new image-work sizex sizey RGB "Hintergrund" 100 NORMAL)))
(gimp-image-add-layer image-work image-new-layer 0)
(gimp-drawable-fill image-new-layer 2)
(set! display-work (car (gimp-display-new image-work)))
(gimp-selection-all image-work)
(set! dec 1)
(set! y 0)
(while (< y (car (gimp-image-height image)))
(set! x 0)
(while (< x (car (gimp-image-width image)))
(if (= mode 0) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 MULTIPLY))))
(if (= mode 1) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" (/ 100 dec) NORMAL))))
(if (= mode 2) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 9))))
(if (= mode 3) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 NORMAL))))
(gimp-image-add-layer image-work image-new-layer 0)
;(gimp-rect-select image x y sizex sizey REPLACE FALSE 0)
(gimp-selection-none image)
(gimp-selection-clear image)
(gimp-layer-set-preserve-trans drawable TRUE)
(gimp-edit-copy drawable)
(gimp-selection-all image-work)
(gimp-layer-add-alpha image-new-layer)
(gimp-drawable-fill image-new-layer 3)
(gimp-edit-clear image-new-layer)
(gimp-selection-clear image-work)
(set! floating_sel (car (gimp-edit-paste image-new-layer 0)))
(gimp-floating-sel-anchor floating_sel)
(gimp-layer-set-offsets image-new-layer (- 0 x) (- 0 y))
(gimp-layer-resize-to-image-size image-new-layer)
(set! dec (+ dec 1))
(set! x (+ x sizex))
)
(set! y (+ y sizey))
)
(gimp-selection-none image)
(gimp-image-flatten image-work)
(gimp-image-clean-all image-work)
(gimp-image-undo-group-end image)
(gimp-displays-flush)
)
(script-fu-register "script-fu-cutto"
_"<Image>/Script-Fu/Alchemy/wrap-copy..."
"Cuts an image in small sheets and combine them. Helps making patterns. Use Text for Effects. Mostly Multiply and Normal dec work well, while the others wont."
"Mathias"
"Mathias"
"14/05/04"
"RGB*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"x-fold" '(2 1 8 1 1 0 0)
SF-ADJUSTMENT _"y-fold" '(2 1 8 1 1 0 0)
SF-OPTION _"mode" ' (_"Multiply"
_"Normal dec"
_"Darken"
_"Normal"
)
)
Das Bild wird aufgeteilt in mehrere gleichgrosse Kacheln, die dann übereinandergelegt werden.
Dabei werden verschiedene Kombinationsarten verwendet, so daß ein Bild entsteht, das man für eine Textur verwenden kann.
Folgende Konbinationsarten gibt es.
Multiply Verwenden den Ebenenmodus Multiply
Normal Dec Ebenenmodus Normal, dabei wird die Transparenz für jedes Teilbild reduziert nach der Formel 100/i, wobei i für den Zähler der Ebene steht
Darken Verwendet den Ebenenmodus Darken
Normal Ebenenmodus Normal, hier kann (und muss) mit Transparenz im Hauptbild gearbeitet werden. Dieser Modus ist wohl noch Ausbaufähig, da es hier auf die Reihenfolge der Kacheln ankommt, und die momentan gewählte Reihenfolge bewirkt, daß die Kachel unten rechts ganz oben liegt.
Trotz allem, ich wünsche viel Spaß mit dem Spielen...
http://gimpforum.de/album_pic.php?pic_id=285
(define (script-fu-cutto image
drawable
dsizex
dsizey
mode)
(gimp-undo-push-group-start image)
(set! usizex (car (gimp-image-width image)))
(set! usizey (car (gimp-image-height image)))
(set! sizex (/ (car (gimp-image-width image)) dsizex))
(set! sizey (/ (car (gimp-image-height image)) dsizey))
;Arbeitskopie herstellen
(set! image-work (car (gimp-image-new sizex sizey RGB)))
(gimp-image-undo-disable image-work)
(set! image-new-layer (car (gimp-layer-new image-work sizex sizey RGB "Hintergrund" 100 NORMAL)))
(gimp-image-add-layer image-work image-new-layer 0)
(gimp-drawable-fill image-new-layer 2)
(set! display-work (car (gimp-display-new image-work)))
(gimp-selection-all image-work)
(set! dec 1)
(set! y 0)
(while (< y (car (gimp-image-height image)))
(set! x 0)
(while (< x (car (gimp-image-width image)))
(if (= mode 0) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 MULTIPLY))))
(if (= mode 1) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" (/ 100 dec) NORMAL))))
(if (= mode 2) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 9))))
(if (= mode 3) (set! image-new-layer (car (gimp-layer-new image-work usizex usizey 1 "Teil" 100 NORMAL))))
(gimp-image-add-layer image-work image-new-layer 0)
;(gimp-rect-select image x y sizex sizey REPLACE FALSE 0)
(gimp-selection-none image)
(gimp-selection-clear image)
(gimp-layer-set-preserve-trans drawable TRUE)
(gimp-edit-copy drawable)
(gimp-selection-all image-work)
(gimp-layer-add-alpha image-new-layer)
(gimp-drawable-fill image-new-layer 3)
(gimp-edit-clear image-new-layer)
(gimp-selection-clear image-work)
(set! floating_sel (car (gimp-edit-paste image-new-layer 0)))
(gimp-floating-sel-anchor floating_sel)
(gimp-layer-set-offsets image-new-layer (- 0 x) (- 0 y))
(gimp-layer-resize-to-image-size image-new-layer)
(set! dec (+ dec 1))
(set! x (+ x sizex))
)
(set! y (+ y sizey))
)
(gimp-selection-none image)
(gimp-image-flatten image-work)
(gimp-image-clean-all image-work)
(gimp-image-undo-group-end image)
(gimp-displays-flush)
)
(script-fu-register "script-fu-cutto"
_"<Image>/Script-Fu/Alchemy/wrap-copy..."
"Cuts an image in small sheets and combine them. Helps making patterns. Use Text for Effects. Mostly Multiply and Normal dec work well, while the others wont."
"Mathias"
"Mathias"
"14/05/04"
"RGB*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"x-fold" '(2 1 8 1 1 0 0)
SF-ADJUSTMENT _"y-fold" '(2 1 8 1 1 0 0)
SF-OPTION _"mode" ' (_"Multiply"
_"Normal dec"
_"Darken"
_"Normal"
)
)