A mirco python tools for sprite image, support Photoshop layer data
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.
$ pip install pysprites
$ 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
$ 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
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.
- Select two most height sprites and the final image height.
- Find a lowest gap.
- Select a longest sprite that can be insert to left, and insert it.
- If cannot insert it, fill the gap and goto step2.
- 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
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 !
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, Size & Hash SHA256 Hash Help||File Type||Python Version||Upload Date|
(11.1 kB) Copy SHA256 Hash SHA256
|Egg||2.7||Aug 20, 2014|
(5.1 kB) Copy SHA256 Hash SHA256
|Source||None||Aug 20, 2014|