Skip to content

Instantly share code, notes, and snippets.

@hrwatahiki
Last active January 5, 2020 15:47
Show Gist options
  • Save hrwatahiki/4d69ebc22a89793de70dfa6d831aa736 to your computer and use it in GitHub Desktop.
Save hrwatahiki/4d69ebc22a89793de70dfa6d831aa736 to your computer and use it in GitHub Desktop.
join-image.py
from PIL import Image
import datetime
import os.path
def getnewsize(size, direction):
if direction == 'V':
return (size[0], size[1]*number)
elif direction == 'H':
return (size[0]*number, size[1])
return (0, 0)
def getnewposition(size, direction, index):
if direction == 'V':
return (0, size[1]*index)
elif direction == 'H':
return (size[0]*index, 0)
return (0, 0)
while True:
direction = ""
while direction.upper() not in ("H", "V", "E"):
direction = input("H)orizontial, V)ertical or E)nd? ").upper()
if direction == 'E':
break
while True:
try:
number = int(input("Number? "))
size_index = int(input("Image's Index that has new image's size? "))
except:
pass
else:
break
filename = []
for i in range(number):
filename.append(input("image{0}: ".format(i)).replace('"', ''))
im = []
for i in range(number):
im.append(Image.open(filename[i]))
size = im[size_index].size
newim = Image.new("RGB", getnewsize(size, direction), "#fff")
for i in range(number):
newim.paste(im[i], getnewposition(size, direction, i))
newfilename = os.path.join(os.path.dirname(filename[0]) ,datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + ".png")
newim.save(newfilename, "PNG", optimize=True)
print("save as {0}".format(newfilename))
newim.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment