Created
November 24, 2014 00:22
-
-
Save glombard/7cd166e311992a828675 to your computer and use it in GitHub Desktop.
Merging 4 images into one with Python and PIL/Pillow
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Combine multiple images into one. | |
# | |
# To install the Pillow module on Mac OS X: | |
# | |
# $ xcode-select --install | |
# $ brew install libtiff libjpeg webp little-cms2 | |
# $ pip install Pillow | |
# | |
from __future__ import print_function | |
import os | |
from PIL import Image | |
files = [ | |
'~/Downloads/1.jpg', | |
'~/Downloads/2.jpg', | |
'~/Downloads/3.jpg', | |
'~/Downloads/4.jpg'] | |
result = Image.new("RGB", (800, 800)) | |
for index, file in enumerate(files): | |
path = os.path.expanduser(file) | |
img = Image.open(path) | |
img.thumbnail((400, 400), Image.ANTIALIAS) | |
x = index // 2 * 400 | |
y = index % 2 * 400 | |
w, h = img.size | |
print('pos {0},{1} size {2},{3}'.format(x, y, w, h)) | |
result.paste(img, (x, y, x + w, y + h)) | |
result.save(os.path.expanduser('~/image.jpg')) |
Hello,
I want to have 2 types of layout: single column and 2 column with random sized sub-images. Can you help me with that?
Thanks a bunch.
I've created a function to stitch an arbitrary number of images. I am suing STL10 dataset from torchvision. So, please change the folder_of_data = '/home/morawi/data' to the one you are using and off you go.
https://gist.github.com/morawi/4879f4a8c68c1a51056a25e565b80ccd
thank you very much. it really helps
Very good..
Not all heroes wear capes.....
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, how are you? I have a question about concatenating the layers of the images. For example. I have two images: one RGB (three layers) and another grayscale (one layer) of the same size. How do I join (unite) the two images, that is, join (unite) the four layers into a single array? I need is to have a 4-layer output.