Skip to content

Instantly share code, notes, and snippets.

@yue4u
Created August 2, 2018 17:39
Show Gist options
  • Save yue4u/91a70ca998d8118f460547007a98148e to your computer and use it in GitHub Desktop.
Save yue4u/91a70ca998d8118f460547007a98148e to your computer and use it in GitHub Desktop.
generate json object from psd file
from psd_tools import PSDImage
from psd_tools.user_api.layers import TypeLayer, Group, PixelLayer
import json
import os
class PSDLoader(object):
def __init__(self):
os.chdir('PATH_TO_FILE')
self.mask_key = 0
self.psd_obj = None
def load(self, psd_file):
psd = PSDImage.load(psd_file)
self.psd_obj = self.recursion(psd)
return self
def output(self):
with open('psd_info.json', 'w') as f:
json.dump(self.psd_obj, f, ensure_ascii=False, indent=2)
print('success')
def get_mask_key(self):
self.mask_key += 1
return str(self.mask_key)
def recursion(self, psd):
obj = {}
for layer in psd.layers:
if type(layer) == Group:
obj[layer.name] = self.recursion(layer)
elif type(layer == PixelLayer):
obj[self.get_mask_key()] = layer.name
elif type(layer == TypeLayer):
obj[self.get_mask_key()] = layer.text
return obj
if __name__ == '__main__':
p = PSDLoader()
p.load('YOUR_PSD').output()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment