User Tools

Site Tools


informatica:linux:gimp:script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatica:linux:gimp:script [2021/09/22 16:40] – [Ampliar selección] joseinformatica:linux:gimp:script [2021/09/22 19:32] – [Ejemplo 2 (RISK)] jose
Line 20: Line 20:
   (gimp-display-new 14)   (gimp-display-new 14)
 Y ya nos aparece. Y ya nos aparece.
 +
 +Para ver una lista de las imágenes que tenemos abiertas:
 +  (gimp-image-list)
 +  (3 #(21 20 17))
 +Nos indica que hay 3 y nos las pone por orden de la mas nueva a la mas vieja. Si queremos coger el ID de la mas nueva, sería la posición 0:
 +<code>
 +(let (
 +      (MyIMAGE (aref (cadr (gimp-image-list)) 0))
 +      )
 +  MyIMAGE
 +)
 +</code>
 +  21
 +
  
 ====== Ampliar selección ====== ====== Ampliar selección ======
Line 58: Line 72:
 ) )
 </code> </code>
 +  2
 +Para mas de una variable con **let***
 +<code>
 +(let ((x 2)
 +      (y 6)
 +     )
 +  (+ x y)
 +)
 +</code>
 +  8
 +  
 +Para coger el resultado de un comando en una variable, se tiene que usar el comando **car** sinó, da error. Por ejemplo la función **gimp-image-get-active-layer** que devuelve **(2588)**
 +<code>
 +(let* ((MyIMAGE 12) 
 +       (MyLAYER (gimp-image-get-active-layer MyIMAGE))
 +      )
 +  MyLAYER
 +)
 +</code>
 +  (2588)
  
 +Para poder operar con la variable MyLAYER tiene que ser sin paréntesis con la función car
 +<code>
 +(let* ((MyIMAGE 12) 
 +       (MyLAYER (car (gimp-image-get-active-layer MyIMAGE)))
 +      )
 +  MyLAYER
 +)
 +</code>
 +  2588
 +
 +====== Ejemplos ======
 +====== Ejemplo 1 ======
 +Desde una selección, amplía, hace borde y rellena con BG
 +<code>
 +(let* ((MyIMAGE 12) 
 +       (MyLAYER (car (gimp-image-get-active-layer MyIMAGE)))
 +      )
 +  (gimp-selection-grow MyIMAGE 8)
 +  (gimp-selection-border MyIMAGE 8)
 +  (gimp-drawable-edit-fill MyLAYER 1)
 +)
 +</code>
 +
 +Está seleccionado lo azul.
 +
 +{{:informatica:linux:gimp:kungfu3.png|}}
 +
 +====== Ejemplo 2 (RISK) ======
 +Creamos el borde en una nueva capa. Lo hace sobre la última imagen. Mejor solo tener una abierta.
 +<code>
 +(let* ((MyIMAGE (aref (cadr (gimp-image-list)) 0))
 +       (MyLAYER (car (gimp-image-get-active-layer MyIMAGE)))
 +      )
 +  (gimp-selection-grow MyIMAGE 8)
 +  (gimp-selection-border MyIMAGE 8)
 +  (gimp-drawable-edit-fill MyLAYER 1)
 +  (gimp-edit-copy MyLAYER)
 +  (let ((MyFLOATING (car (gimp-edit-paste MyLAYER FALSE))))
 +    (gimp-floating-sel-to-layer MyFLOATING)
 +  )
 +)
 +</code>
 +
 +Guardando selecciones:
 +<code>
 +(let* (
 +        (MyIMAGE (aref (cadr (gimp-image-list)) 0))
 +        (MyLAYER (car (gimp-image-get-active-layer MyIMAGE)))
 +        (MySELECTION1 (car (gimp-selection-save MyIMAGE)))
 +      )
 +  (gimp-selection-grow MyIMAGE 8)
 +  (gimp-selection-border MyIMAGE 8)
 +  (gimp-edit-copy MyLAYER)
 +  (let* (
 +          (MySELECTION2 (car (gimp-selection-save MyIMAGE)))
 +          (MyFLOATING (car (gimp-edit-paste MyLAYER FALSE)))
 +        )
 +    (gimp-floating-sel-to-layer MyFLOATING)
 +    (let (
 +           (MyLAYER2 (car (gimp-image-get-active-layer MyIMAGE)))
 +         )
 +        (gimp-image-select-item MyIMAGE 2 MySELECTION1)
 +        (gimp-drawable-edit-fill MyLAYER2 0)
 +        (gimp-image-select-item MyIMAGE 2 MySELECTION2)
 +        (gimp-drawable-edit-fill MyLAYER2 1)
 +    )
 +  )
 +)
 +</code>
  
informatica/linux/gimp/script.txt · Last modified: 2021/09/22 20:55 by jose