I have no experience with python, but the owner of this script is not responding.
When I drag my photos over this script, to create a montage, it ends up cutting off half of the last photo on the right side edge.
Being 4 pictures wide,
1 2 3 45 6 7 8
Pictures 4 and 8 usually get halved. The space is there for the pictures (its blank though)
I was wondering what would be causing this.
I have thought it is possible that it was cropping, but its almost like the half of the picture isn't imported or detected.
Well, you drag selected photos over the script , it outputs something like this
So you can take a bunch of photos or screenshots, and combine them into one single file, easily instead of adding each photo individually.
Size of each photo is roughly 500x250 at max.
EDIT: Here is the upload of the preview, as you can see the images have the slots, but they are "disappearing" if that makes sense.
EDIT2: This script has worked at one time, I haven't edited it or anything. It had worked on a ~70 screenshot montage. No errors or anything. Is there something that my computer could be doing to disrupt the importing of the images?
#!/usr/bin/env python
import os
import sys
from time import strftime
import Image
import ImageDraw
import ImageFont# parameters
row_size = 4
margin = 3def generate_montage(filenames):images = [Image.open(filename) for filename in filenames]width = 0height = 0i = 0sum_x = max_y = 0 width = max(image.size[1]+margin for image in images)*row_sizeheight = sum(image.size[0]+margin for image in images)montage = Image.new(mode='RGBA', size=(width, height), color=(0,0,0,0))try:image_font = ImageFont.truetype('font/Helvetica.ttf', 18)except:try:image_font = ImageFont.load('font/Helvetica-18.pil')except:image_font = ImageFont.load_default()draw = ImageDraw.Draw(montage)offset_x = offset_y = 0i = 0max_y = 0max_x = 0offset_x = 0for image in images:montage.paste(image, (offset_x, offset_y))text_coords = offset_x + image.size[0] - 45, offset_y + 120draw.text(text_coords, '#{0}'.format(i+1), font=image_font)max_x = max(max_x, offset_x+image.size[0])if i % row_size == row_size-1: offset_y += max_y+marginmax_y = 0offset_x = 0else:offset_x += image.size[0]+marginmax_y = max(max_y, image.size[1])i += 1if i % row_size:offset_y += max_yfilename = strftime("Montage %Y-%m-%d at %H.%M.%S.png")montage = montage.crop((0, 0, max_x, offset_y))montage.save(filename)if __name__ == '__main__':old_cwd = os.getcwd()os.chdir(os.path.dirname(sys.argv[0]))try:if len(sys.argv) > 1:generate_montage(sys.argv[1:])finally:os.chdir(old_cwd)