Gimp scripting
Problema
En estos días he estado trabajando en un proyecto web junto con algunos compañeros de clase y estoy contento porque he aprendido muchas cosas interesantes, hoy les voy a hablar de una de ellas.
Estamos desarrollando un sitio web para un centro comercial y empleamos muchas imágenes para los distintos productos que se ofertan. Cada uno de los integrantes se encargo de recolectar información de los productos de las distintas secciones, y el problema empezó cuando cada quien recolecto fotos de distintos tamaños y fue necesario redimensionar y decorar cada una de las imágenes a un tamaño adecuado(150x150). Tiempo atrás ya había oído hablar que se podían emplear scripts con gimp para automatizar la edición de imágenes, así que me puse a investigar.
Gimp soporta scripts en python y en scheme, de los cuales he optado por python. A continuación el código que emplee para resolver mi problema.
import os, re
from gimpfu import *
for file in os.listdir(os.getcwd()):
if not re.search('jpeg', file):
continue
= pdb.gimp_file_load(file, '1') # Open file
image 150, 150) # and scale
pdb.gimp_image_scale(image,
# Apply round corners filter
= pdb.gimp_image_active_drawable(image)
drawable 9, 1, 8, 8, 9, 0, 0)
pdb.script_fu_round_corners(image, drawable, 0)
image.merge_visible_layers(= pdb.gimp_image_active_drawable(image)
drawable
# Save file with PNG format
= file.split('.')
temp
temp.pop()= temp.pop() + ".png"
output_file 'Saved file') pdb.gimp_file_save(image, drawable, output_file,
En este ejemplo mis imágenes están en formato JPEG pero ustedes pueden modificarlo para adaptarlo a sus necesidades. En la línea 2 importamos todo el contenido del modulo gimpfu
el cual contiene todo lo necesario para trabajar con gimp, os
y re
son de utilería.
Desde una consola nos trasladamos al directorio donde están las imágenes y ejecutamos gimp. Vamos a Filters ->
Python-Fu->
Console, tenemos dos opciones, teclear el código ahí directamente o lo guardamos en un archivo y lo ejecutamos en el interprete con la función execfile('script.py')
.
La documentación de las funciones que empleo en el script y muchas más la proporciona el mismo gimp y podemos acceder a ella con el botón Browse...
. Hasta aquí con este post, espero que esta información les sea tan útil como a mi o más.
Referencias
- [1] GIMP Python Documentation
- [2] Basic Scheme</a>