En ocasiones… no veo sueños. Vamos, que a veces me cuesta dormir. Y más los últimos días. Y esperando a que el sueño llegue, a veces me pongo a hacer el chorra.
Por ejemplo, ayer mi hermana por el día cogió una foto de una compañera de curro y con el Gimp hizo una movida como los típicos pósters de Marylin Monroe o Ché Guevara hechos por Andy Warhol (qué mofa, lo digo como supiera lo que digo!). Ella seguía esta guía, y el rollo de coger la imagen final, ir copiándola varias veces, cambiando colores cada vez, e ir pegándolas ordenaditas en una nueva… fue como “qué rollo”.
Y anoche, pues no podía dormir, y rayado me dio el puntazo pensando… “qué diablos! fijo que se puede programar!”… et voilà! un scriptillo cutre en Python y más o menos facilita la parte rayada de la tarea.

La movida es que Gimp tiene su libgimp, y tiene la capacidad de hacer plug-ins rápidos mediante scripts que llamen a esas funciones para interactuar con la imagen. Y los scripts pueden estar programados en Python, me imagino que gracias a tener instalado en Ubuntu el paquete gimp-python.
Con esto puedes hacer cosas como eso, tener un submenú más en el menú de la imagen, y que cuando lo llames, pues le pases unos parámetros (datos del plugin que tú pidas) y actúes en consecuencia (haciendo lo que te de la gana). Es un poco jarto porque por lo que parece no hay nada tipo sandbox, o sea que tienes que confiar mucho en los plug-ins. A cambio, lo que pueden hacer es bastante cañero, porque en tareas muy mecánicas, pues te ahorra tiempo.
Entonces, para hacer los Andy Warhols, sólo hay que:
- Instalar el plugin (bajarlo de aquí a ~/.gimp-2.2/plug-ins/ y darle permisos de ejecución - chmod 755 andy_warhol.py)
- Coger una foto:

- Y con el lacete (”Seleccionar regiones dibujadas a mano”), pues pillar el jeto de la foto, copiar y “pegar como nueva”, por ejemplo.

- Coger la capa en la que se ha pegado, y duplicarla. Si la ventana con las capas no está a la vista, pues en la ventana principal del Gimp darle a: Archivo -> Diálogos -> Capas (o bien Control + L)
- En la capa duplicada, dando a Capa -> Colores -> Umbral, sale un menucillo que según lo cambias puedes ver los rasgos que se verán luego. Dependerá de la imagen y eso

- También le damos a Seleccionar -> por color, seleccionamos el blanco y lo quitamos
- Una vez hecho esto, cambiamos el nombre de la capa en la que está la foto original, y la llamamos “Original”
- Para hacerlo más chulo, podemos cambiar nombre de la capa en la que está la cara, y la llamamos “Face”
- Entonces, haciendo click en Python-fu -> Andy-Warhol, sale un menucillo con una serpiente. Le decimos que aceptar y..
- Se ejecuta el script.

Lo que hace el script es una chorrada, coge la imagen original, le pone un umbral de la ostia para distinguir la silueta, y entonces, teniendo un fondo, la silueta, y lo que hemos cogido de la jeta antes, va copiando la imagen con diferentes colores pues las veces que venga en el script en una nueva imagen.
¿Que cuántas veces y qué colores? Pues los colores he hecho una de rapiña de este sitio, y están en la primera línea del script con una cosa de este pelo:
AW_BACKGROUND_COLORS=[
[ [0xFF,0xFD,0x0A], [0x05,0x83,0xEA], [0x2A,0x20,0x81] ],
[ [0xF6,0x84,0x07], [0xE2,0x09,0x1C], [0x86,0xB2,0x07] ],
[ [0x21,0x6E,0x64], [0xFF,0xFB,0x06], [0xE4,0x04,0x7C] ]
]
AW_FACE_COLORS=[
[ [0x2B,0x25,0x7D], [0xE3,0x05,0x7C], [0xE9,0x06,0x21] ],
[ [0x79,0x43,0x99], [0x1D,0x1A,0x21], [0xEA,0x68,0x08] ],
[ [0xE7,0x09,0x76], [0xE9,0x1D,0x20], [0x29,0x20,0x7D] ]
]
Entonces… los colores son esos (en RGB), en plan AW_FACE_COLORS por ejemplo es una lista, que tiene 3 filas, cada una de las cuales tiene 3 colores (una por columna), siendo cada color una lista de tres números (R,G,B). Y el número de filas / columnas, pues es ese también. Vamos, que si lo cambiamos por:
AW_BACKGROUND_COLORS=[
[ [0xFF,0xFD,0x0A], [0x05,0x83,0xEA] ],
[ [0xF6,0x84,0x07], [0xE2,0x09,0x1C] ],
[ [0x21,0x6E,0x64], [0xFF,0xFB,0x06] ]
]
AW_FACE_COLORS=[
[ [0x2B,0x25,0x7D], [0xE3,0x05,0x7C] ],
[ [0x79,0x43,0x99], [0x1D,0x1A,0x21] ],
[ [0xE7,0x09,0x76], [0xE9,0x1D,0x20] ]
]
pues en lugar de 3 filas por 3 columnas, tiene 3 filas por 2 columnas, sin más.
Supongo que para peña que sepa todo esto será una chapuza y mal hecha, o sea que mis oídos están abiertos a todo tipo de críticas constructivas y sugerencias :-D (y no hace falta decir que si alguien se pone a mejorar el script, que haga lo que quiera con él, vamos, que dominio público)
Y ya con eso, acaba mi puntazo pseudo-artístico por un tiempo :-) a ver si le sirve de algo a alguien
Como fin, otras pruebas que he hecho, con Richard:

María:

Nando:

o Saladino:

EDIT: Dejo aquí una pequeña actualización, que permite colorear también el borde, por ejemplo:





















