Tileset Slicer

Acabo de terminar o complemento da ferramenta Tileset Assembler, para ajudar os desenvolvedores que utilizam o mapas de tilesets, o Tileset Slicer. Básicamente ela faz o contrário do Tileset Assembler, ele fatia em tiles tilesets.

Funciona como?

# -*- coding: cp1252 -*-
import glob
import os
from PIL import Image

# Altere aqui as principais variaveis
    #O caminho da pasta de tileset
caminhoPasta = ".\\Tiles Separados"
    #Tamanho do tile em x
tamTileCol = 64
    #Tamanho do tile em y
tamTileLin = 64
    #Nome do tileset
nomeArquivo = "tilesetCompleto.png"

img = Image.open('.//'+nomeArquivo)
img = img.convert("RGBA")
print "Abri o tileset para ser fatiado"

pixdata = img.load()
print "Os tiles teram o tamanho de :"+ str(tamTileLin)+ " , " + str(tamTileCol)
print "O tamanho do tileset é de :" + str(img.size[0]) + " por " + str(img.size[1])
nTilesLinha = img.size[0]/tamTileCol
nTilesColuna = img.size[1]/tamTileLin
print "Portanto terei que fatiar " + str(nTilesLinha) + " por linha e " +  str(nTilesColuna) + " por coluna"
totalTiles = nTilesLinha * nTilesColuna
print "O total de tiles será "+ str(totalTiles)

#Vai até a pasta dos tiles
os.chdir(caminhoPasta)
i = 0
#Faz a gambiarra pra ter uma imagem do tamanho necessario
img = Image.open('..\\pix.png')
img = img.convert("RGBA")

#print("Vou dar resize na imagem do tileset")
for i in range(0,totalTiles):
    print "Vou trabalhar no tile : " + str(i)
    tile = img.resize((tamTileLin, tamTileCol),Image.ANTIALIAS)
    #damos bind da imagem para a variável pixdata do tile
    tilePixData = tile.load()
    linhaIni = (i/nTilesLinha)*tamTileLin
    colunaIni = i % nTilesLinha *tamTileCol
    for y in xrange(tile.size[1]):
        for x in xrange(tile.size[0]):
            tilePixData[x,y] = pixdata[colunaIni+x,linhaIni+y]
            #print str(y) + " , "+ str(x)
    print "Estou salvando este tile"
    tile.save("tile"+str(i)+".png")

print "Terminei de fatiar tudo"


Se quiser baixar, você encontra aqui: 

Nenhum comentário:

Postar um comentário