cropping a random part of an image

drewes.mil at gmail.com drewes.mil at gmail.com
Wed Aug 10 08:16:48 EDT 2016


Ok, now it works for me!
Thanks again!

import random, os, time
from PIL import Image

INPATH = ('/home/.../Start/')
OUTPATH = ('/home/.../Ziel/')

dx = dy = 228
tilesPerImage = 25

files = os.listdir(INPATH)
numOfImages = len(files)
print(files)
t = time.time()
for file in files:
	im = Image.open(INPATH+file)
 	for i in range(1, tilesPerImage+1):
       		newname = file.replace('.', '_{:03d}.'.format(i))
       		w, h = im.size
       		x = random.randint(0, w-dx-1)
      		y = random.randint(0, h-dy-1)
      		print("Cropping {}: {},{} -> {},{}".format(file, x,y, x+dx, y+dy))
      		im.crop((x,y, x+dx, y+dy))\
         		.save(os.path.join(OUTPATH, newname))

t = time.time()-t
print("Done {} images in {:.2f}s".format(numOfImages, t))
print("({:.1f} images per second)".format(numOfImages/t))
print("({:.1f} tiles per second)".format(tilesPerImage*numOfImages/t)) 



More information about the Python-list mailing list