Skip to main content

Using a blend of Python and Maths for the creation of images

Project description

About
-----

.. list-table::
:stub-columns: 1

* - project
- |license| |gitter|
* - code
- |travis| |coveralls| |black|
* - pypi
- |version| |supported-versions|

.. |travis| image:: https://travis-ci.org/alcarney/stylo.svg?branch=develop
:target: https://travis-ci.org/alcarney/stylo

.. |coveralls| image:: https://coveralls.io/repos/github/alcarney/stylo/badge.svg?branch=develop
:target: https://coveralls.io/github/alcarney/stylo?branch=develop

.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black

.. |version| image:: https://img.shields.io/pypi/v/stylo.svg
:alt: PyPI Package latest release
:target: https://pypi.org/project/stylo

.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/stylo.svg
:alt: Supported versions
:target: https://pypi.org/project/stylo

.. |license| image:: https://img.shields.io/github/license/alcarney/stylo.svg
:alt: License

.. |gitter| image:: https://badges.gitter.im/stylo-py/Lobby.svg
:alt: Join the chat at https://gitter.im/stylo-py/Lobby
:target: https://gitter.im/stylo-py/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

**Stylo is in early development, while it is useable we cannot make any
stability guarantees.**

Stylo is a Python library that allows you to create images and animations
powered by your imagination and a little mathematics. While mathematics is very
much at the core you do not have to be a mathematician to use it!

For example here is a simple image of a boat that can be made with just a few
lines of Python


.. image:: /_static/examples/a-boat.png
:align: center
:width: 75%

.. image:: /img/a-boat.png
:align: center
:width: 75%

.. testcode:: readme-boat

from stylo.image import LayeredImage
from stylo.color import FillColor
from stylo.shape import Circle, Rectangle, Triangle
from stylo.domain.transform import translate

# Let's define some colours
black = FillColor("000000")
seablue = FillColor("0000ff")
white = FillColor("ffffff")
yellow = FillColor("ffff00")
red = FillColor("dd2300")

# Now for the shapes we will draw
sun = Circle(-7, 3.4, 1.5)
sea = Circle(0, -55, 55)
sails = Triangle((0.1, 0.6), (2.5, 0.6), (0.1, 3.5)) | Triangle((-0.1, 0.6), (-1.5, 0.6), (-0.1, 3.5))
boat = Rectangle(0, 0, 3.5, 1) | Triangle((1.75, -0.5), (1.75, 0.5), (2.25, 0.5))
mast = Rectangle(0, 2, 0.125, 3)

# Move some into position
boat = boat >> translate(0, -2)
sails = sails >> translate(0, -2)
mast = mast >> translate(0, -2)

# Finally let's bring it all together
image = LayeredImage(background="99ddee", scale=8)

image.add_layer(sun, yellow)
image.add_layer(sea, seablue)
image.add_layer(boat, red)
image.add_layer(mast, black)
image.add_layer(sails, white)

image(1920, 1080, filename="docs/_static/examples/a-boat.png");

Installation
^^^^^^^^^^^^

Stylo is available for Python 3.5+ and can be installed using Pip:

.. code::

$ pip install stylo

Be sure to check out the `documentation <https://alcarney.github.io/stylo>`_
(under construction) for details on how to get started with stylo.

Contributing
^^^^^^^^^^^^

Contributions are welcome! Be sure to checkout the `Contributing
<https://alcarney.github.io/stylo/contributing/>`_ section of the documentation
to get started.

**Note:** While :code:`stylo` itself supports Python 3.5+, due to some of the
development tools we use you need to have Python 3.6+ in order to contribute
**code** to the library. Other versions of Python work just as well if you are
looking to contribute documentation.


Project details


Download files

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

Source Distribution

stylo-0.6.0.tar.gz (59.0 kB view hashes)

Uploaded Source

Built Distribution

stylo-0.6.0-py3-none-any.whl (41.0 kB view hashes)

Uploaded Python 3

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