3.6. Extender el script: Text Box

Vamos a añadir código en dos sitios: antes de redimensionar la imagen y al final del script (para devolver la nueva imagen, la capa y el texto).

Después de obtener el ancho y alto del texto, necesitamos redimensionar estos valores basados en la cantidad del bufer especificado por el usuario. No queremos cometer ningún error, chequeando para asegurar que está en el rango de 0-100%, porque no es vital y porque no hay razón para que el usuario no pueda dar un valor como 200 % de bufer para añadir.

        (set! theBuffer (* theImageHeight (/ inBufferAmount 100) ) )
        (set! theImageHeight (+ theImageHeight theBuffer theBuffer) )
        (set! theImageWidth  (+ theImageWidth  theBuffer theBuffer) )
      

Todo lo que hacemos aquí es configurar el bufer basado en la altura del texto, y añadirlo dos veces a ambos, el alto y ancho de nuestra nueva imagen. (Lo añadiremos dos veces porque el bufer necesita ser añadido a ambos lados del texto).

Ahora que hemos redimensionado la imagen para permitir un bufer, necesitamos centrar el texto bajo la imagen. Esto se hace para moverlo a las coordenadas (x, y) de (theBuffer, theBuffer). Añadí esta linea después de redimensionar la capa y la imagen:

        (gimp-layer-set-offsets theText theBuffer theBuffer)
      

Adelante y guarde su script, e inténtelo después de refrescar la base de datos.

Todo lo que queda por hacer es devolver nuestra imagen, la capa y la capa del texto. Después de mostrar la imagen, añadimos esta linea:

        (list theImage theLayer theText)
      

Esta es la última linea de la función, hace que esta linea esté disponible a otros scripts que quieran usarla.

Para usar nuestro nuevo script text box en otro script, podriamos escribir algo como lo siguiente:

        (set! theResult (script-fu-text-box
                         "Some text"
                         "Charter" "30"
                         '(0 0 0)
                         "35"
                        )
        )
        (gimp-image-flatten (car theResult))
      

Felicitaciones, está en el camino para su ¡Cinturón Negro de Script-Fu!.