export_starling.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from lxml import etree
  2. import os
  3. import sys
  4. import Image
  5. xml = sys.argv[1]
  6. doc = etree.parse(xml)
  7. root = doc.getroot()
  8. imagePath = root.attrib["imagePath"]
  9. folder = os.path.split(xml)[0]
  10. if not folder:
  11. folder = "."
  12. src = Image.open(folder + "/" + imagePath)
  13. for node in root:
  14. if node.tag == "SubTexture":
  15. #<SubTexture name="wild/0000" x="1" y="1" width="306" height="306" frameX="-48" frameY="-48" frameWidth="504" frameHeight="504"/>
  16. name = node.attrib["name"]
  17. try:
  18. os.makedirs(os.path.split(name)[0])
  19. except OSError:
  20. pass
  21. x = int(node.attrib["x"])
  22. y = int(node.attrib["y"])
  23. width = int(node.attrib["width"])
  24. height = int(node.attrib["height"])
  25. frameX = int(node.attrib["frameX"])
  26. frameY = int(node.attrib["frameY"])
  27. frameWidth = int(node.attrib["frameWidth"])
  28. frameHeight= int(node.attrib["frameHeight"])
  29. size = (frameWidth, frameHeight)
  30. dest = Image.new("RGBA", size)
  31. im = src.crop((x, y, x + width, y + height))
  32. dest.paste(im, (-frameX, -frameY, -frameX + width, -frameY + height))
  33. dest.save(name + ".png")