Icon 100x60 gimp Generar sprites con Python y GIMP

en CSSPythonWindowsLinuxCss spritesSpritePng

Script en Python para generar sprites de iconos con el editor gráfico GIMP

A continuación os presentamos un script para generar sprites de iconos en GIMP. El script está codificado en Python.

Funciona en cualquier documento (PSD, etc) con un tamaño definido que será la dimensión del icono. En cada una de las capas se debe poner una imagen que representa el icono y con un nombre de capa determinado que luego se usará para definir los estilos CSS.

Para ejecutar el script dentro del editor gráfico GIMP (gratuito y de código abierto), tan solo hay que guardar este código en un archivo .py, por ejemplo sprites.py en la carpeta de Ubuntu: ~/.gimp-2.6/plug-ins (esto es dentro de nuestra home, por ejemplo, /home/miusuario/.gimp-2.6/plug-ins).

Luego reiniciamos el editor, abrimos el archivo donde tenemos las imágenes por capas y vamos al menú Python-Fu > SpriteTool > Generate Sprites

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gimpfu import *
def to_sheet(image, drawable):
    margin = 0
    max_columns = 4
    css_output = ""
    col = 0
     row = 0
    number_of_layers = float(len(image.layers))
    sprite_x, sprite_y = image.width, image.height
    new_doc_width = max_columns * sprite_x + (max_columns - 1) * margin
    new_doc_height = math.ceil(number_of_layers  / max_columns) * sprite_y + ( math.ceil(number_of_layers  / max_columns) - 1) * margin
    image.resize(int(new_doc_width), int(new_doc_height), 0, 0)
    image.undo_group_start()
    # Move layers in sheet
    for layer in image.layers:
        if col > max_columns - 1:
                col = 0
                row += 1
        layerXPosition = layer.offsets[0]
        layerYPosition = layer.offsets[1]
        x = col * (sprite_x + margin);
        y = row * (sprite_y + margin);
        layer.set_offsets(x, y)
        col += 1
            css_output += "\n.icon-%(size_x)sx%(size_y)s-%(layer_name)s\t{ background-position:  %(x_position)spx %(y_position)spx; }" % dict(size_x=sprite_x, size_y=sprite_y, layer_name = layer.name, x_position = ((-x) if (x != 0) else '0'), y_position = ((-y) if (y != 0) else '0') )
    image.undo_group_end()
    print css_output
if __name__ == '__main__':
    register(
            "redimensionar_imagen",
            "Redimensionar imagen",
            "Redimensionar imagen",
            "Guillem Català",
            "Guillem Català",
            "2012",
            "

/Python-Fu/SpriteTool/Generate Sprites", "RGB*, GRAY*", [], [], to_sheet) main()

Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com

Comentarios