i have since updated this script. read about it
here
monster_tile_renderer
monster_tile_renderer_2
usage note:
- filename won't update until you restart blender (Working on it! You can still modify by hand)
installation note:
- place monster_tile_renderer_2.py in your scripts/addons directory
- the addon will appear in the 'render' addons list.
autostitching
for autostitching i wrote a tool, it uses and older version of Python 2.6/7 because PIL image library is used for stitching. Auto_Stitcher Download.py
# GPL2 license - code by Dealga McArdle (zeffii) 2011 july 12 ''' usage, 1) stick the output of Monster Tile Renderer in a folder. 2) set the path variable to that folder ('..fullpath/stitching/files/') 3) run the script. ''' # stitching your images, get py 2.6/2.7 and get PIL import os import re import PIL from PIL import Image output_format = 'PNG' path = '/home/zeffii/stitching/files2/' os.chdir(path) # set this folder active mycurdir = os.getcwdu() filelist = os.listdir(mycurdir) # lists content (supposed to be images only!) filelist = sorted(filelist) stitchlist = [] for i in filelist: strname = str(i[:]) filepath = path+strname # disect filename, get dimensions db = Image.open(filepath) match = re.search('\_(\d+\_\d+)\.', filepath) match_str = "" if match.group() != None: match_str = match.group(1) else: print("use filenames like yourfilname_col_row.ext") print("then, if still issues, check the directory for uncommon characters") break col_row = tuple(match_str.split("_")) col_row = [int(dimension) for dimension in col_row] # store as tuple, tuple, string stitch_up = (tuple(col_row), db.size, filepath) stitchlist.append(stitch_up) # stitchlist items are ((column,row),(x, y), '/path/full_including_extension') rows = stitchlist[-1][0][0] columns = stitchlist[-1][0][1] # there has to be neater way to generate a multidimensional list with elements # that don't all point to the same place in memory main_matrix = [] for i in range(rows): minor_matrix = [] for m in range(columns): minor_matrix.append([]) main_matrix.append(minor_matrix) # temporary for entry in stitchlist: main_matrix[entry[0][0]-1][entry[0][1]-1] = entry[1] # get composite dimensions px_wide = sum([i[0][0] for i in main_matrix]) px_high = sum([i[1] for i in main_matrix[0]]) print("px_wide", px_wide, " px_high", px_high) # permanent for entry in stitchlist: main_matrix[entry[0][0]-1][entry[0][1]-1] = entry comp_image = Image.new('RGB', (px_wide, px_high)) ypos = 0 xpos = 0 current_height = 0 current_width = 0 for col in main_matrix: ypos = 0 #do top to bottom for row in col: ymp = Image.open(row[2]) current_width = row[1][0] current_height = row[1][1] ymp = ymp.crop((0,0,current_width, current_height)) comp_image.paste(ymp, (xpos,ypos)) ypos += current_height xpos += current_width comp_image.show() comp_image.save(path+"composited.png", format=output_format)