PDA

Vollständige Version anzeigen : Hilfe mit Script


Renderer
21.03.2008, 17:04
Auf GIMP-Talk hab ich eine verbesserte Version von MichaJo´s "Resize Brush" Script gefunden. Klar, Resizen geht jetzt auch mit GIMP selber aber mit dem Script kann man den Brush auch drehen und spiegeln.
Unglücklicherweise ist der, der das Script verbessert hat, aber Taiwanese und das Script sieht so aus..

8618


Hat jemand vielleicht eine Ahnung, wie man das zumindest auf Englisch bekommt?
Aus dem Code werd ich natürlich wieder nicht schlau.. :oops:

hier mal das Script..

;; resizebrush.scm -*-scheme-
;; resizes a (gbr)-brush
;; version 1.0 2005-11-13
;;
;; Copyright (C) 2005 by Michael Hoelzen <MichaelHoelzen@aol.com>
;; http://www.remoserv.de
;;
; 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.
;
; version 1.1
; the #resiZed.gbr will now be saved in the gimp-directory instead of
; the gimp-data-directory which is write-protected in unix
;
; version 1.2
; changed \\brushes\\ to /brushes/ for unix-confirmity
;
; version 1.3 Modify by James Hwang
; 加入灰階選項,讓縮放之後的筆刷也能改變顏色
;
; version 1.4 Modify by James Hwang
; 加入旋轉
;
; version 2.4 fixed for Gimp 2.4 by James Hwang
; 加入鏡射
(define (script-fu-resize-brush image drawable resFactor angSel mirror bgray?)
(define brushnameResi "#resiZed")
(define filesave (string-append "" gimp-directory "/brushes/" brushnameResi ".gbr"))
(define brushnameIn (car (gimp-context-get-brush)))
(define (testIfresiZed a)
(let* (
(len1)
(len2)
(sstr)
)
(set! len1 (string-length a))
(set! len2 (string-length brushnameResi))
(if (>= len1 len2)
(begin
(set! sstr (substring a (- len1 len2) len1))
(if (string=? sstr brushnameResi)
(begin
(set! len1 (- len1 len2))
(substring a 0 len1)
)
a
)
)
a
)
; (if (not (null? (string-search brushnameResi a)))
; (substring a 0 (string-search brushnameResi a))
; a
; )
)
)
(let* (
(actualbrush)
(layer)
(scolor)
(bcolor)
(arrayToPaint)
)
(set! actualbrush (testIfresiZed brushnameIn))
;(set! actualbrush brushnameIn)
(gimp-context-set-brush actualbrush)
(let*
(
(brushnameOut (string-append actualbrush brushnameResi))
(spacing (car (gimp-brush-get-spacing actualbrush)))
(brushDimens (gimp-brush-get-info actualbrush))
(brushWidth (car brushDimens))
(brushHeight (cadr brushDimens))
(resiZedWidth (* brushWidth resFactor))
(resiZedHeight(* brushHeight resFactor))
(centerX (/ brushWidth 2))
(centerY (/ brushHeight 2))
(centerXpluseins(+ centerX 1))
(centerYpluseins(+ centerY 1))
(angle (* angSel (/ 3.14159 180)))
)

(and (> resiZedWidth 1)(> resiZedHeight 1)
(begin
(set! arrayToPaint (cons-array 4 'double))
(aset arrayToPaint 0 centerX)
(aset arrayToPaint 1 centerY)
(aset arrayToPaint 2 centerXpluseins)
(aset arrayToPaint 3 centerYpluseins)
(set! image (car (gimp-image-new brushWidth brushHeight RGB)))
(set! layer (car (gimp-layer-new image brushWidth brushHeight 1 "layer 1" 100 0)))
(gimp-image-undo-disable image)
(gimp-image-add-layer image layer 0)
(gimp-drawable-fill layer 3)
(if (= bgray? TRUE)
(begin
(set! scolor (car (gimp-context-get-foreground)))
(set! bcolor (car (gimp-context-get-background)))
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
(gimp-paintbrush-default layer 4 arrayToPaint)
(gimp-image-scale image resiZedWidth resiZedHeight)
(if (not (= angle 0))
(begin
(gimp-drawable-transform-rotate-default layer angle 1 0 0 1 0)
(gimp-image-resize-to-layers image)
)
)
(cond
((= mirror 1)
(gimp-image-flip image ORIENTATION-HORIZONTAL))
((= mirror 2)
(gimp-image-flip image ORIENTATION-VERTICAL))
)
(gimp-image-convert-grayscale image)
(set! layer (car (gimp-image-flatten image)))
(gimp-context-set-foreground scolor)
(gimp-context-set-background bcolor)
)
(begin
(gimp-paintbrush-default layer 4 arrayToPaint)
(gimp-image-scale image resiZedWidth resiZedHeight)
(if (not (= angle 0))
(begin
(gimp-drawable-transform-rotate-default layer angle 1 0 0 1 0)
(gimp-image-resize-to-layers image)
)
)
(cond
((= mirror 1)
(gimp-image-flip image ORIENTATION-HORIZONTAL))
((= mirror 2)
(gimp-image-flip image ORIENTATION-VERTICAL))
)
)
)
(file-gbr-save 1 image layer filesave filesave spacing brushnameOut)
(gimp-image-undo-enable image)
(gimp-image-delete image)
(gimp-brushes-refresh)
(gimp-context-set-brush brushnameOut)))
)
)
)
;
(script-fu-register "script-fu-resize-brush"
_"_Resize Rotate Brush"
"Resize Rotate a brush, Base on resizebrush.scm by Michael Hoelzen"
"James Huang"
"James Huang"
"2008"
""
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"縮放比" '(1.0 0.1 3.0 0.1 1 1 0)
SF-ADJUSTMENT _"旋轉角度" '(0 -180 180 1 10 0 0)
SF-OPTION _"鏡射" '("無" "水平" "垂直")
SF-TOGGLE "灰階" TRUE
;SF-ADJUSTMENT _"resFactor" '(1.0 0.1 3.0 0.1 1 1 0)
;SF-ADJUSTMENT _"Angle" '(0 0 359 1 10 0 0)
;SF-TOGGLE "Grayscale" TRUE
)
(script-fu-menu-register "script-fu-resize-brush"
_"<Image>/Script-Fu/BrushUtil")



Ganz unten bei den Fragezeichen müsste was anderes hin, vermute ich. Aber was? :)

andreas1968
21.03.2008, 17:42
Hallo Renderer,

habe gerade die Google-Sprachtools erstmalig in chinesisch ausprobiert. *g*
Das kommt dabei raus:

SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"Zoom ratio" '(1.0 0.1 3.0 0.1 1 1 0)
SF-ADJUSTMENT _"Rotational angle" '(0 -180 180 1 10 0 0)
SF-OPTION _"Mirror" '("No" "Level" "Vertical")
SF-TOGGLE "Grayscale" TRUE
;SF-ADJUSTMENT _"resFactor" '(1.0 0.1 3.0 0.1 1 1 0)
;SF-ADJUSTMENT _"Angle" '(0 0 359 1 10 0 0)
;SF-TOGGLE "Grayscale" TRUE
Ergibt das Sinn?

Frohe Ostern.

Andreas

PS: Welches Fragezeichen meinst du?

joe_debug
21.03.2008, 17:51
Hallo renderer,
ich weiß nicht ob ich dich richtig verstanden habe, aber wenn du nur die Beschreibung der einzelnen Bedienelement ändern willst, dann kannst du das glaub ich ganz unten machen.

8619

ich nehme an das zum Schluß sind irgendwelche defines (sorry, kann leider kein script-fu).
Ich habe jedenfalls so geändert:

;
(script-fu-register "script-fu-resize-brush"
_"_Resize Rotate Brush"
"Resize Rotate a brush, Base on resizebrush.scm by Michael Hoelzen"
"James Huang"
"James Huang"
"2008"
""
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"resFactor(Aufloesung)" '(1.0 0.1 3.0 0.1 1 1 0)
SF-ADJUSTMENT _"Winkel" '(0 -180 180 1 10 0 0)
SF-OPTION _"Graustufen" '("無" "水平" "垂直")
SF-TOGGLE "Graustufen" TRUE
;SF-ADJUSTMENT _"resFactor" '(1.0 0.1 3.0 0.1 1 1 0)
;SF-ADJUSTMENT _"Angle" '(0 0 359 1 10 0 0)
;SF-TOGGLE "Grayscale" TRUE
)
(script-fu-menu-register "script-fu-resize-brush"
_"<Image>/Script-Fu/BrushUtil")
Das erste müsste die Auflösung sein (resFaktor).
Dann der Drehwinkel (winkel)
Und die Checkbox könnte bedeuten: Graustufen
Bei der ComboBox(DropDownListe) weiß ich nicht so genau, aber ich denke, dass es dabei um die Spiegelung geht.

Renderer
21.03.2008, 18:13
Hei, das ging ja schnell.. :)
Google scheint im Übersetzten gar nicht so schlecht so sein..^^

So siehts aus..

8620

Vielen Dank euch beiden und frohe Ostern. ;)

Avarra
02.08.2008, 15:38
Hei, das ging ja schnell.. :)
Google scheint im Übersetzten gar nicht so schlecht so sein..^^

So siehts aus..

8620

Vielen Dank euch beiden und frohe Ostern. ;)



Hallo Renderer,

das ist ja klasse. Kannst du dieses script auch komplett posten. Das wäre sehr lieb von dir.

Lieben Gruß

Avarra

24dan
10.12.2008, 15:39
Hallo Renderer,

Kannst du dieses script auch komplett posten?

Delfried
14.12.2008, 18:04
;; resizebrush.scm -*-scheme-
;; resizes a (gbr)-brush
;; version 1.0 2005-11-13
;;
;; Copyright (C) 2005 by Michael Hoelzen <MichaelHoelzen@aol.com>
;; http://www.remoserv.de
;;
; 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.
;
; version 1.1
; the #resiZed.gbr will now be saved in the gimp-directory instead of
; the gimp-data-directory which is write-protected in unix
;
; version 1.2
; changed \\brushes\\ to /brushes/ for unix-confirmity
;
; version 1.3 Modify by James Hwang
; 加入灰階選項,讓縮放之後的筆刷也能改變顏色
;
; version 1.4 Modify by James Hwang
; 加入旋轉
;
; version 2.4 fixed for Gimp 2.4 by James Hwang
; 加入鏡射
(define (script-fu-resize-brush image drawable resFactor angSel mirror bgray?)
(define brushnameResi "#resiZed")
(define filesave (string-append "" gimp-directory "/brushes/" brushnameResi ".gbr"))
(define brushnameIn (car (gimp-context-get-brush)))
(define (testIfresiZed a)
(let* (
(len1)
(len2)
(sstr)
)
(set! len1 (string-length a))
(set! len2 (string-length brushnameResi))
(if (>= len1 len2)
(begin
(set! sstr (substring a (- len1 len2) len1))
(if (string=? sstr brushnameResi)
(begin
(set! len1 (- len1 len2))
(substring a 0 len1)
)
a
)
)
a
)
; (if (not (null? (string-search brushnameResi a)))
; (substring a 0 (string-search brushnameResi a))
; a
; )
)
)
(let* (
(actualbrush)
(layer)
(scolor)
(bcolor)
(arrayToPaint)
)
(set! actualbrush (testIfresiZed brushnameIn))
;(set! actualbrush brushnameIn)
(gimp-context-set-brush actualbrush)
(let*
(
(brushnameOut (string-append actualbrush brushnameResi))
(spacing (car (gimp-brush-get-spacing actualbrush)))
(brushDimens (gimp-brush-get-info actualbrush))
(brushWidth (car brushDimens))
(brushHeight (cadr brushDimens))
(resiZedWidth (* brushWidth resFactor))
(resiZedHeight(* brushHeight resFactor))
(centerX (/ brushWidth 2))
(centerY (/ brushHeight 2))
(centerXpluseins(+ centerX 1))
(centerYpluseins(+ centerY 1))
(angle (* angSel (/ 3.14159 180)))
)

(and (> resiZedWidth 1)(> resiZedHeight 1)
(begin
(set! arrayToPaint (cons-array 4 'double))
(aset arrayToPaint 0 centerX)
(aset arrayToPaint 1 centerY)
(aset arrayToPaint 2 centerXpluseins)
(aset arrayToPaint 3 centerYpluseins)
(set! image (car (gimp-image-new brushWidth brushHeight RGB)))
(set! layer (car (gimp-layer-new image brushWidth brushHeight 1 "layer 1" 100 0)))
(gimp-image-undo-disable image)
(gimp-image-add-layer image layer 0)
(gimp-drawable-fill layer 3)
(if (= bgray? TRUE)
(begin
(set! scolor (car (gimp-context-get-foreground)))
(set! bcolor (car (gimp-context-get-background)))
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
(gimp-paintbrush-default layer 4 arrayToPaint)
(gimp-image-scale image resiZedWidth resiZedHeight)
(if (not (= angle 0))
(begin
(gimp-drawable-transform-rotate-default layer angle 1 0 0 1 0)
(gimp-image-resize-to-layers image)
)
)
(cond
((= mirror 1)
(gimp-image-flip image ORIENTATION-HORIZONTAL))
((= mirror 2)
(gimp-image-flip image ORIENTATION-VERTICAL))
)
(gimp-image-convert-grayscale image)
(set! layer (car (gimp-image-flatten image)))
(gimp-context-set-foreground scolor)
(gimp-context-set-background bcolor)
)
(begin
(gimp-paintbrush-default layer 4 arrayToPaint)
(gimp-image-scale image resiZedWidth resiZedHeight)
(if (not (= angle 0))
(begin
(gimp-drawable-transform-rotate-default layer angle 1 0 0 1 0)
(gimp-image-resize-to-layers image)
)
)
(cond
((= mirror 1)
(gimp-image-flip image ORIENTATION-HORIZONTAL))
((= mirror 2)
(gimp-image-flip image ORIENTATION-VERTICAL))
)
)
)
(file-gbr-save 1 image layer filesave filesave spacing brushnameOut)
(gimp-image-undo-enable image)
(gimp-image-delete image)
(gimp-brushes-refresh)
(gimp-context-set-brush brushnameOut)))
)
)
)
;
(script-fu-register "script-fu-resize-brush"
_"_Resize Rotate Brush"
"Resize Rotate a brush, Base on resizebrush.scm by Michael Hoelzen"
"James Huang"
"James Huang"
"2008"
""
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"縮放比" '(1.0 0.1 3.0 0.1 1 1 0)
SF-ADJUSTMENT _"旋轉角度" '(0 -180 180 1 10 0 0)
SF-OPTION _"鏡射" '("無" "水平" "垂直")
SF-TOGGLE "灰階" TRUE
;SF-ADJUSTMENT _"resFactor" '(1.0 0.1 3.0 0.1 1 1 0)
;SF-ADJUSTMENT _"Angle" '(0 0 359 1 10 0 0)
;SF-TOGGLE "Grayscale" TRUE
)
(script-fu-menu-register "script-fu-resize-brush"
_"<Image>/Script-Fu/BrushUtil")



Das ist doch das komplette Script oder nicht?
Du müsstest nur die Punkte nun unten verändern, so dass es in Deutsch/Englisch ist.
Gruß, Delfried