ikonok

Sajna a script-fu nyelve egyelőre idegen tőlem, de bizonyára ez segítene a dolgon.
Elkészítek egy képet amelyből ikont szeretnék.
Egy ikon kép is több rétegből áll. Mikor hogy, de maximum 9 rétegből.
16, 24, 32, 48, 64, 72, 96 128, 250-es méretekkel.

Jó lenne ha automatizálni lehetne a dolgot.

Tehát amit automatizálni szeretnék:
Az elkészült képet én lekicsinyitem 250x250-esre, de innentől kezdve jó lenne ha ő elkészítené a többi réteget, és azokat meg el is mozgatná a bal felső sarokba.
Tehát egy klikk, és el is készült a 9 rétegű ikon, melyből aztán vagy eltávolítom a felesleget, vagy nem.
Ki tud ilyenről?

; Ez a réteg menübe helyez egy "Create icons..." menüpontot
(define (create-icon img drawable size)
( let* (
(newlayer (car (gimp-layer-copy drawable TRUE)))
)
(gimp-image-add-layer img newlayer -1)
(gimp-layer-scale newlayer size size TRUE)
(gimp-layer-set-offsets newlayer 0 0)
)
)

(define (script-fu-create-icons img drawable)
(gimp-context-push)
(gimp-image-undo-group-start img)

(create-icon img drawable 128)
(create-icon img drawable 96)
(create-icon img drawable 72)
(create-icon img drawable 64)
(create-icon img drawable 48)
(create-icon img drawable 32)
(create-icon img drawable 24)
(create-icon img drawable 16)

(gimp-image-undo-group-end img)
(gimp-displays-flush)
(gimp-context-pop)
)

(script-fu-register "script-fu-create-icons"
_"_Create icons.."
"Creates copies of the layer resized to 128, 96, 72, 64, 48, 32, 24, 16"
"Andras Prim"
"Andras Prim"
"2008"
"RGB* GRAY* INDEXED*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0)

(script-fu-menu-register "script-fu-create-icons"
_"<Image>/Layer")

Óhh. Köszi szépen. Ez lesz az.

Bár ajándék lónak ne nézzük a fogát, viszont egy apró kérésem lenne még ezzel kapcsolatban, ha megoldható.
Egy eredeti ikon fájl esetében a legnagyobb kép van felül, és alatta a kisebbek.
Ezt megoldottam úgy, hogy
(gimp-image-add-layer img newlayer -1) helyett +1 lett, illetve megcseréltem a sorrendeket:
Ezzel kezdtem.
(create-icon img drawable 16)
(create-icon img drawable 24) stb.

Az igazán tényleg csak apróság az az, hogy az elnevezésük így pontatlan lett..
A legfelső rétegen a legnagyobb kép az az "ikon #1" de az alatta lévő már "ikon #9"
az "ikon #2" helyett. Tehát csak elnevezés probléma van.
Ezen lehet-e segíteni?
Bár elmentés, és újbóli megnyitás után úgyis helyes lesz a neve.
Tehát a script teljes mértékben használható.

Maradjon (gimp-image-add-layer img newlayer -1) és a sorrend, de a
(create-icon img drawable 16)
sor után írd be ezt:
(script-fu-reverse-layers 1 img drawable)

Tökéletes! Nagyon szépen köszönöm!