Skip to main content

A mirco python tools for sprite image, support Photoshop layer data

Project description

Sometimes, designer will give you a visual production, and that you need to crop the little sprites off from the files, merge them into a png files, and write a css files for such sprites.

This tools make everything in onkey.

Install

$ pip install pysprites

Example

$ pysprites -i page1.psd -m icon- -b -r -c page1.css -o page1.png

This command will import layers whose name starts with icon-, from page1.psd, reposition them, output the css for each sprite to page1.css, and output the merged png to page1.png

Command line

$ pysprites [args...]

-i a.psd b.psd ... : import psd layer from psd files (need psd_tools)
-a x.png y.png ... : add png files
-m filter  : only handle layer or image name startswith filter
-p padding : add padding for each sprite
-r         : reposition sprites
-cp string : use string as css class prefix
-b         : gen sprite width and height for css
-c out.css : output css to file
-o out.png : output merged png to file

Framework

Actually, everything is in a single file : pysprites/sprites.py.

In a task, everything present as a “General Sprite Process Group” (gsp), it is struct is as follow:

gsp :: (width, height, img, padding, prefix, args)
img :: list of [[name, [width, height],[left, top], PIL_object]

And the gsp go though handlers, a handler reposition the img, and a handler save it to png, and so on.

Reposition Algorithm

  1. Select two most height sprites and the final image height.

  2. Find a lowest gap.

  3. Select a longest sprite that can be insert to left, and insert it.

  4. If cannot insert it, fill the gap and goto step2.

  5. Repeat untail every sprite has been inserted.

Using a EdgeLines struct to maintain the lowest gap, and the gsp_reposition function implements this algorithm. See the code in pysprites/sprites.py

Contribute

I think this tools is good enough for me. However, Welcome for new handlers, for example, import the layer from a GIMP xcf file, or new reposition algorithm, or any participation !

Enjoy it!

Project details


Release history Release notifications | RSS feed

This version

2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysprites-2.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

pysprites-2.0-py2.7.egg (11.1 kB view details)

Uploaded Source

File details

Details for the file pysprites-2.0.tar.gz.

File metadata

  • Download URL: pysprites-2.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysprites-2.0.tar.gz
Algorithm Hash digest
SHA256 54c24f8f47f74dc4784a1cf79e562badeacd7a9051245e048d7e791fba9471e6
MD5 4db1aadeeea314bfb0475ea02f7fc7c8
BLAKE2b-256 e2c6c94a6dad6a2820510322c7f1faef292096bbe1d1f5d1b491b2341795d927

See more details on using hashes here.

File details

Details for the file pysprites-2.0-py2.7.egg.

File metadata

  • Download URL: pysprites-2.0-py2.7.egg
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysprites-2.0-py2.7.egg
Algorithm Hash digest
SHA256 e932ee0b5928cad2e71138350d389b7c834ab58f811f77f4736e4d5b76245e88
MD5 f788d0486c6615e983490419f568b7ef
BLAKE2b-256 c7bb876cb7833ae4912738bffceb29742ae68f72b4e19bead423c07996ac8358

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page