====== Image Processing ====== ===== Pillow ===== refer: http://effbot.org/imagingbook/ ==== Image Module ==== ==== ImageDraw Module ==== ===== Psd tools ===== source: https://github.com/kmike/psd-tools refer API: http://searchcode.babies.vn:8080/source/xref/python2.7/site-packages/psd_tools/user_api/psd_image.py ==== Install ==== * windows: SET VS90COMNTOOLS=%VS100COMNTOOLS% easy_install.exe psd-tools easy_install.exe packbits * linux: pip install psd-tools pip install packbits ==== Using Psd tools ==== === Read psd file and get header, layers(contain layers and groups) === * PSDImage.load return **psd_tools.user_api.psd_image.PSDImage** object * **psd_tools.user_api.psd_image.PSDImage** contain list of objects **psd_tools.Group** and **psd_tools.Layer** Basic Examples: * Read header and layers: from psd_tools import PSDImage psd = PSDImage.load('1203.psd') print psd.header print psd.layers output: PsdHeader(number_of_channels=4, height=1186, width=1181, depth=8, color_mode=CMYK) [, , ] * Save all layers and groups: from psd_tools import PSDImage from psd_tools.user_api.psd_image import PSDImage as UserImage psd = PSDImage.load('1203.psd') for layer in psd.layers: pil_img = layer.as_PIL() pil_img.save(layer.name + '.png') === working with group(psd_tools.Group) === === working with layer(psd_tools.Layer) === === export psd file to png === psd.as_PIL() return object **PIL.Image.Image** * Simple export from psd_tools import PSDImage from psd_tools.user_api.psd_image import PSDImage as UserImage psd = PSDImage.load('1203.psd') merge_img = psd.as_PIL() merge_img.save('1203.png') * script export psd to png file: from psd_tools import PSDImage import sys, os import re from os import path def convertpsd2png(psdfilename, outpath = ''): psd = PSDImage.load(psdfilename) pil_img = psd.as_PIL() pngfilename = re.sub('.psd', '.png', path.basename(psdfilename)) pngfilename = path.join(outpath, pngfilename) if outpath != '' and not path.exists(outpath): os.makedirs(outpath) print pngfilename pil_img.save(pngfilename) nargs = len(sys.argv) outpath = '' if nargs <= 1: print 'please input psd file' exit() elif nargs >=2: outpath = sys.argv[2] psdfilename = sys.argv[1] if path.exists(psdfilename): ext = path.splitext(psdfilename)[1] if ext == '.psd': convertpsd2png(psdfilename, outpath) else: print 'the extension of file is incorrect' else: print 'file is not exists:', psdfilename script to run for multiple files: for /F "delims=\r\n" %x in ('dir /B indir') do psd2png.py indir\%x outdir