# ========================================================= # Resize card images # ========================================================= # Read card images, resize them, and write them to a # new directory. The original image files are not # changed. # --------------------------------------------------------- # Resizes card images because: # 1. uniform size for card images # 2. card game code need not spend time resizing # --------------------------------------------------------- # "import PIL.Image" is used to prevent namespace conflicts # ========================================================= # --------------------------------------------------------- # --- import # --------------------------------------------------------- import PIL.Image import card_values as cv import sys # --------------------------------------------------------- # --- which version of Python am I running? # --------------------------------------------------------- if sys.version_info.major == 3: from tkinter import * from tkinter.font import * else: from Tkinter import * from tkFont import * # --------------------------------------------------------- # --- global variables # --------------------------------------------------------- imgHeight = 200 srcDir = './cards-originals/' dstDir = './cards/' # --------------------------------------------------------- # --- functions # --------------------------------------------------------- def resize(img,src,dst,maxHeight): old = src + img new = dst + img i = PIL.Image.open(old) print('old width : {}',format(i.size[0])) print('old height : {}',format(i.size[1])) w = float(i.size[0]) # old image width h = float(i.size[1]) # old image height heightRatio = maxHeight/h newWidth = int(w * heightRatio) print('new height ratio: {}',format(heightRatio)) print('new width : {}',format(newWidth)) print('new height : {}',format(maxHeight)) i = i.resize((newWidth,maxHeight),PIL.Image.ANTIALIAS) i.save(new) # --------------------------------------------------------- # --- main # --------------------------------------------------------- if __name__ == '__main__': fileNames = cv.cardsvalues.keys() c = 0 for f in fileNames: print('Resizing: {}'.format(f)) resize(f,srcDir,dstDir,imgHeight) c += 1 print('{} files resized'.format(c))