├── .gitignore ├── requirements.txt ├── datasets ├── aurora1.jpg ├── aurora2.jpg ├── vangogh1.jpg ├── vangogh2.jpg ├── vangogh3.jpg └── vangogh4.jpg ├── examples ├── aurora1.png ├── vangogh1.png ├── vangogh2.png └── vangogh3.png ├── README.md └── mashup.py /.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Pillow==3.1.0 2 | wheel==0.24.0 3 | -------------------------------------------------------------------------------- /datasets/aurora1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/aurora1.jpg -------------------------------------------------------------------------------- /datasets/aurora2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/aurora2.jpg -------------------------------------------------------------------------------- /datasets/vangogh1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/vangogh1.jpg -------------------------------------------------------------------------------- /datasets/vangogh2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/vangogh2.jpg -------------------------------------------------------------------------------- /datasets/vangogh3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/vangogh3.jpg -------------------------------------------------------------------------------- /datasets/vangogh4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/datasets/vangogh4.jpg -------------------------------------------------------------------------------- /examples/aurora1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/examples/aurora1.png -------------------------------------------------------------------------------- /examples/vangogh1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/examples/vangogh1.png -------------------------------------------------------------------------------- /examples/vangogh2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/examples/vangogh2.png -------------------------------------------------------------------------------- /examples/vangogh3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/exposure/master/examples/vangogh3.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # image-mashup 2 | Mashup two images and get something cool 3 | ![Example] (http://i.imgur.com/uF5XDMw.png) 4 | ## Installation 5 | `virtualenv venv` 6 | 7 | `source venv/bin/activate` 8 | 9 | `pip install -r requirements.txt` 10 | 11 | ## Usage 12 | `python mashup.py ` 13 | -------------------------------------------------------------------------------- /mashup.py: -------------------------------------------------------------------------------- 1 | from PIL import Image 2 | from PIL import ImageFilter 3 | import sys, os 4 | import random 5 | 6 | def main(argv): 7 | # Check if arguments formed correctly 8 | if len(argv) < 2: 9 | sys.stderr.write("Usage: %s \n" % (argv[0],)) 10 | return 1 11 | 12 | if not os.path.exists(argv[1]): 13 | sys.stderr.write("ERROR: Image %r was not found!\n" % (argv[1],)) 14 | return 1 15 | 16 | if not os.path.exists(argv[2]): 17 | sys.stderr.write("ERROR: Image %r was not found!\n" % (argv[2],)) 18 | return 1 19 | 20 | # Load the images 21 | image_1 = Image.open(argv[1]) 22 | image_2 = Image.open(argv[2]) 23 | 24 | # Resize image to smallest image size if necessary 25 | if (image_1.size) != (image_2.size): 26 | if image_1.size > image_2.size: 27 | image_1 = image_1.resize(image_2.size) 28 | else: 29 | image_2 = image_2.resize(image_1.size) 30 | 31 | # Mashup the images 32 | width, height = image_1.size 33 | for x in range(width): 34 | for y in range(height): 35 | # Use the average of each image's pixels 36 | pixel_1 = image_1.getpixel((x,y)) 37 | pixel_2 = image_2.getpixel((x,y)) 38 | average_pixel = ((pixel_1[0] + pixel_2[0])/2,(pixel_1[1] + pixel_2[1])/2,(pixel_1[2] + pixel_2[2])/2) 39 | image_1.putpixel((x,y), average_pixel) 40 | 41 | # Save the result 42 | image_1.save("result.png") 43 | 44 | if __name__ == "__main__": 45 | sys.exit(main(sys.argv)) 46 | --------------------------------------------------------------------------------