informatica:linux:gimp:script
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatica:linux:gimp:script [2021/09/22 16:43] – [Variables] jose | informatica:linux:gimp:script [2021/09/22 20:55] (current) – [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: | ||
+ | < | ||
+ | (let ( | ||
+ | (MyIMAGE (aref (cadr (gimp-image-list)) 0)) | ||
+ | ) | ||
+ | MyIMAGE | ||
+ | ) | ||
+ | </ | ||
+ | 21 | ||
+ | |||
====== Ampliar selección ====== | ====== Ampliar selección ====== | ||
Line 69: | Line 83: | ||
8 | 8 | ||
| | ||
- | Para coger el resultado de un comando en una variable, se tiene que usar el comando **car** sinó, da error | + | 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)** |
+ | < | ||
+ | (let* ((MyIMAGE 12) | ||
+ | | ||
+ | ) | ||
+ | MyLAYER | ||
+ | ) | ||
+ | </ | ||
+ | (2588) | ||
+ | Para poder operar con la variable MyLAYER tiene que ser sin paréntesis con la función car | ||
+ | < | ||
+ | (let* ((MyIMAGE 12) | ||
+ | | ||
+ | ) | ||
+ | MyLAYER | ||
+ | ) | ||
+ | </ | ||
+ | 2588 | ||
+ | ====== Ejemplos ====== | ||
+ | ===== Ejemplo 1 ===== | ||
+ | Desde una selección, amplía, hace borde y rellena con BG | ||
+ | < | ||
+ | (let* ((MyIMAGE 12) | ||
+ | | ||
+ | ) | ||
+ | (gimp-selection-grow MyIMAGE 8) | ||
+ | (gimp-selection-border MyIMAGE 8) | ||
+ | (gimp-drawable-edit-fill MyLAYER 1) | ||
+ | ) | ||
+ | </ | ||
+ | Está seleccionado lo azul. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Ejemplo 2 (RISK) ===== | ||
+ | Creamos el borde en una nueva capa. Lo hace sobre la última imagen. Mejor solo tener una abierta. | ||
+ | < | ||
+ | (let* ((MyIMAGE (aref (cadr (gimp-image-list)) 0)) | ||
+ | | ||
+ | ) | ||
+ | (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) | ||
+ | ) | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | Guardando selecciones: | ||
+ | < | ||
+ | (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 ( | ||
+ | | ||
+ | ) | ||
+ | (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) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Ejecutar Script ====== | ||
+ | Copiamos este script en el directorio de scripts con la extensión scm. Para saber cual es el directorio de scripts, vamos a: | ||
+ | Edit > Preferences > Folders > Scripts | ||
+ | Suele ser: | ||
+ | < | ||
+ | En este ejemplo, aparece con el nombre **Risk** en el menu de Filters. Una vez copiado, para que aparezca en el menú, pulsamos: **Filters > Script-Fu > Refresh Scripts** | ||
+ | |||
+ | < | ||
+ | ( define (script-fu-risk) | ||
+ | (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 ( | ||
+ | | ||
+ | ) | ||
+ | (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) | ||
+ | (gimp-selection-none MyIMAGE) | ||
+ | (gimp-image-remove-channel MyIMAGE MySELECTION1) | ||
+ | (gimp-image-remove-channel MyIMAGE MySELECTION2) | ||
+ | (gimp-displays-flush) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | |||
+ | (script-fu-register | ||
+ | " | ||
+ | " | ||
+ | "Crea un Layer con el pais seleccionado | ||
+ | de color de FG y el borde mas gordo" | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | "" | ||
+ | ) | ||
+ | (script-fu-menu-register " | ||
+ | |||
+ | </ |
informatica/linux/gimp/script.1632329003.txt.gz · Last modified: 2021/09/22 16:43 by jose