Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions

  




 

 

3.7.  Your script and its working

3.7.1.  What you write

Below the complete script:

        (script-fu-register
                  "script-fu-text-box"                        ;func name
                  "Text Box"                                  ;menu label
                  "Creates a simple text box, sized to fit\
                    around the user's choice of text,\
                    font, font size, and color."              ;description
                  "Michael Terry"                             ;author
                  "copyright 1997, Michael Terry"             ;copyright notice
                  "October 27, 1997"                          ;date created
                  ""                     ;image type that the script works on
                  SF-STRING      "Text:"         "Text Box"   ;a string variable
                  SF-FONT        "Font:"         "Charter"    ;a font variable
                  SF-ADJUSTMENT  "Font size"     '(50 1 1000 1 10 0 1)
                                                              ;a spin-button
                  SF-COLOR       "Color:"        '(0 0 0)     ;color variable
                  SF-ADJUSTMENT  "Buffer amount" '(35 0 100 1 10 1 0)
                                                              ;a slider
        )
        (script-fu-menu-register "script-fu-text-box" "<Toolbox>/Xtns/Script-Fu/Text")
        (define (script-fu-text-box inText inFont inFontSize inTextColor inBufferAmount)
          (let*
            (
              ; define our local variables
              ; create a new image:
              (theImageWidth  10)
              (theImageHeight 10)
              (theImage)
              (theImage
                        (car
                            (gimp-image-new
                              theImageWidth
                              theImageHeight
                              RGB
                            )
                        )
              )
              (theText)             ;a declaration for the text
              (theBuffer)           ;create a new layer for the image
              (theLayer
                        (car
                            (gimp-layer-new
                              theImage
                              theImageWidth
                              theImageHeight
                              RGB-IMAGE
                              "layer 1"
                              100
                              NORMAL
                            )
                        )
              )
            ) ;end of our local variables
            (gimp-image-add-layer theImage theLayer 0)
            (gimp-context-set-background '(255 255 255) )
            (gimp-context-set-foreground inTextColor)
            (gimp-drawable-fill theLayer BACKGROUND-FILL)
            (set! theText
                          (car
                                (gimp-text-fontname
                                theImage theLayer
                                0 0
                                inText
                                0
                                TRUE
                                inFontSize PIXELS
                                "Sans")
                            )
              )
            (set! theImageWidth   (car (gimp-drawable-width  theText) ) )
            (set! theImageHeight  (car (gimp-drawable-height theText) ) )
            (set! theBuffer (* theImageHeight (/ inBufferAmount 100) ) )
            (set! theImageHeight (+ theImageHeight theBuffer theBuffer) )
            (set! theImageWidth  (+ theImageWidth  theBuffer theBuffer) )
            (gimp-image-resize theImage theImageWidth theImageHeight 0 0)
            (gimp-layer-resize theLayer theImageWidth theImageHeight 0 0)
            (gimp-layer-set-offsets theText theBuffer theBuffer)
            (gimp-display-new theImage)
            (list theImage theLayer theText)
          )
        )
      

3.7.2. What you obtain

Figure 12.5.  And the result on the screen.

And the result on the screen.


 
 
  Published under the terms of the GNU General Public License Design by Interspire