User Tools

Site Tools


python:imagesprocess

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
python:imagesprocess [2014/08/15 06:13] – [working with layer] adminpython:imagesprocess [2022/10/29 16:15] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Image Processing ====== ====== Image Processing ======
 +===== Pillow =====
 +refer: http://effbot.org/imagingbook/
 +==== Image Module ====
 +==== ImageDraw Module ====
 ===== Psd tools ===== ===== Psd tools =====
 source: https://github.com/kmike/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 ==== ==== Install ====
   * windows:<code bat>   * windows:<code bat>
 SET VS90COMNTOOLS=%VS100COMNTOOLS% SET VS90COMNTOOLS=%VS100COMNTOOLS%
-easy_install.ext psd-tools+easy_install.exe psd-tools
 easy_install.exe packbits easy_install.exe packbits
 </code> </code>
Line 13: Line 18:
 </code> </code>
 ==== Using Psd tools ==== ==== Using Psd tools ====
-=== Read header and layers(contain layers and groups) === +=== Read psd file and get header, layers(contain layers and groups) === 
-<code python>+  * 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:<code python>
 from psd_tools import PSDImage from psd_tools import PSDImage
  
Line 25: Line 33:
  u'Layer 3', size=1181x1186, x=0, y=0>]  u'Layer 3', size=1181x1186, x=0, y=0>]
 </code> </code>
-=== working with group === +  * Save all layers and groups:<code python> 
-=== working with layer ===+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'
 +</code> 
 +=== 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<code python> 
 +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'
 +</code> 
 +  * script export psd to png file:<code python> 
 +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 
 +</code>script to run for multiple files:<code bat> 
 +for /F "delims=\r\n" %x in ('dir /B indir') do psd2png.py indir\%x outdir 
 +</code>
python/imagesprocess.1408083220.txt.gz · Last modified: 2022/10/29 16:15 (external edit)