Slice and scale 9-patch images
Project description
Slice Android style 9-patch images, resize and interactively preview them.
See https://developer.android.com/tools/help/draw9patch.html for a 9-patch description.
Installation
If you want to use the interactive viewer read the additional installation notes under “Interactive viewer”.
$ pip install ninepatch
Python usage
from ninepatch import Ninepatch
ninepatch = Ninepatch('9patch_test.9.png')
print(ninepatch.fill_area) # content_area(left=23, top=20, right=27, bottom=59)
scaled_image = ninepatch.render(500, 400) # creates a new PIL image
Command line usage
Your image must be a PNG image with a transparent background. The scale and fill guide color must be 100% opaque black.
Scale and open image in a viewer (PIL image.show()):
$ ninepatch render 9patch_test.9.png 300 300
Save the scaled image to a new file:
$ ninepatch render 9patch_test.9.png 300 300 scaled.png
Slice the 9patch into tiles:
$ ninepatch slice 9patch_test.9.png ./outputdir
Interactive viewer
Interactively resize and preview an image in a Tkinter viewer:
$ ninepatch_viewer 9patch_test.9.png or just: $ ninepatch_viewer without arguments to see the demo image
If you want to use the viewer then python-pil.imagetk has to be installed.
On Ubuntu do:
$ sudo apt-get install python-pil.imagetk
If you want to install into a virtualenv, pip needs the following packages to compile PIL with Tkinter support:
$ sudo apt-get install python-tk tk8.6-dev
(You can trigger a recompile of PIL with: “pip install -I ninepatch”)
Changelog
- 0.1.16
new method export_slices()
changed command line parameters (render/slice)
- 0.1.10
missing guides are now handled properly
- 0.1.9
parse the fill area
switched to setuptools
- 0.1.4
added Tkinter viewer
Notes
I wrote this tool for the ninepatch_actor.py in my Clutter example project: https://github.com/vindolin/Clutter-Python-examples
Issues
…
TODO
…
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.