Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

A Python-based library to write Photoshop PSD files

Project description

===============================
pytoshop
===============================


.. image:: https://img.shields.io/pypi/v/pytoshop.svg
:target: https://pypi.python.org/pypi/pytoshop

.. image:: https://img.shields.io/travis/mdboom/pytoshop.svg
:target: https://travis-ci.org/mdboom/pytoshop

.. image:: https://readthedocs.org/projects/pytoshop/badge/?version=latest
:target: https://pytoshop.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://img.shields.io/codecov/c/github/mdboom/pytoshop.svg
:target: https://codecov.io/gh/mdboom/pytoshop
:alt: Coverage status


A Python-based library to read and write Photoshop PSD and PSB files.

Based on the specification `from Adobe
<https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/>`__,
but also with the help of the `psd-tools
<https://github.com/psd-tools/psd-tools/>`__ source code.


* Free software: BSD license
* Documentation: https://pytoshop.readthedocs.io.


Features
--------

- Parsing of the most important tags. This is not complete, but the
infrastructure is in place to add support for more quite easily.

- Loading of complex nested layer structures, and the ability to edit
them and write them back out.


=======
History
=======

1.2.0 (2017-12-13) (2017-09-26)
------

Bugfixes:

- Fix #4: Change masked layer to same size as image layer when using
the `user.nested_layers` interface.

1.0.1 (2017-08-01) (2017-07-29)
------

- Declared API as stable.

0.6.0 (2017-07-24)
------

Minor improvements:

- Make it easier to choose the right channel, given the current color
mode.

0.5.0 (2017-07-03)
------

Minor improvements:

- The color assigned to a layer (displayed in the layer list) is now
available in the ``nested_layers`` API.

Bugfixes:

- Fix crash in ``GuideResourceBlock``.

0.4.1 (2017-06-05)
------------------

Minor improvements:

- Parse multiple values in a struct together when possible. This has
a modest speed improvement.

Bugfixes:

- Fix pip install [#1]

- The main canvas image will use the specified compression algorithm
when using nested_layers_to_psd.

- Non-image layers correctly set "pixel_data_is_irrelevant" flag.

0.4.0 (2017-05-12)
------------------

Improvements:

- For speed purposes, pytoshop no longer uses traitlets.

- Performance improvements to the compression/decompression code.

- Added support for the ``shmd`` metadata tagged block, and the ability
to access it from the ``user.nested_layers`` API.

Bugfixes:

- Updated the list of tagged blocks that use 8-bit lengths.

- Fixed a bug where the image data would be corrupted when writing
images from an input file to an output file with a different file
format version.

- Fixed a crash when the input file contains no layer group ids.

- Allow Numpy arrays of shape () in place of scalars for constant
images.

0.3.0 (2017-01-09)
------------------

Improvements:

- ``pytoshop`` now runs on Python 2.7, in addition to 3.4 and 3.5.

- Many of the image resources types are now handled directly, rather
than through a generic bytes-only interface.

- Major speedups in compression codecs.

Bugfixes:

- Saving a layer with a constant color (in ``nested_layers_to_psd``)
now works correctly.

- Unicode string decoding now properly handles trailing zeroes.

- The "name source" on layers (when created from
``nested_layers_to_psd``) would point to the wrong source, but is
now fixed.

- Fix a bug when writing a layer of width 1.

Project details


Release history Release notifications

This version
History Node

1.2.0

History Node

1.1.0

History Node

1.0.1

History Node

1.0.0

History Node

0.6.0

History Node

0.4.1

History Node

0.4.0

History Node

0.3.0

History Node

0.2.0

Download files

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
pytoshop-1.2.0.tar.gz (2.2 MB) Copy SHA256 hash SHA256 Source None Dec 13, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page