All major and minor version changes will be documented in this file. Details of patch-level version changes can be found in commit messages.
- fix bug where dimensions auto-calculation disregards layer offsets #7
- use absolute imports
- bug fixes
- use new blendmodes
- update tooling
- ruff
- pyright
- use loguru to replace print statements
- use pathlib in place of os.path
- absolute imports in the place of relative imports
- Address “The Boolean Trap” with kw only args
- More type hints
- remove deprecated functions from
2021.2.4
- update dependencies
- add: Using os.path.splitext() to support Path objects #6, thank you https://github.com/denilsonsa!
- Update deps
- Remove metprint
- Move docs
- Bump pillow version (CVE-2022-22815, CVE-2022-22816, CVE-2022-22817)
- Update deps
- Improve save layered image to gif functionality
- Update directory structure for formal tests
- add pre-commit
- code quality improvements
- code quality improvements
- Update pillow
- Update blend.py #3
- reduce duplication with upstream libs
- bugfix backwards compat
- Updated formatting
- Deprecated 'raster' functions and replaced with more accurate naming
- Improved docs
- Update Pillow >= 8.1.1 due to high severity security vulnerabilities:
- CVE-2021-27923
- CVE-2020-35654
- CVE-2020-35653
- CVE-2021-27921
- CVE-2021-27922
- CVE-2020-35655
- Improve MI score by refactoring
layeredimage.io.py
tolayeredimage.io/
- Try out new yapf formatting.
- Tidy up
pyupgrade
pypdn
compatible with py 3.9 so added back
- Fix bug on python 3.7/3.8
- Using FHMake to build
- Added type hinting
- Dropped support for python < 3.7
- Added support for python 3.9
- pypdn has been dropped until it is compatible with python 3.9
- replaced
psd-tools3
withpsdtoolsx
- Fix ora write bug causing the layers to be inverted (monkey patch)
- Fix png minifier for layeredc
- Fix fatal read xcf bug (upstream)
- Update pyora (security benefits and removal of save fix)
- Fix bug due to spelling error
- Removed redundant function
- File extensions can now be case-insensitive
- Minor change to stack.json for .layered (no longer minified)
- Added .layeredc that will attempt to optimize the image. Savings of 10 - 20%
- Added .layered image spec and implementation to store blendmodes that are not supported by ora and some other formats that this lib can write too. Still, use ora whenever possible as this is a more supported image format.
- Updates to
gimpformats
mean that visibility is now correctly preserved. - Optimizations to save functions
- Added json functions to get data as a dictionary
- Updated classifiers
- Upgraded from
gimpformats_unofficial
togimpformats
- Disable some pylint errors for snippets
- Bugfix openLayer_XCF: layer offsets in a group are now correct
- Added full support for Open Raster Image blend modes
- Added PINLIGHT, VIVIDLIGHT, EXCLUSION
- Moved blending heavy lifting to a shiny new library
- Added blend modes from pyora (credited in file docstring): GRAINEXTRACT, GRAINMERGE, DIVIDE, HUE, SATURATION, COLOUR, LUMINOSITY
- Added LSR support
- Added make.py
- Bugfix pdn layer offset in group
- Print more descriptive LayerImage
- Bugfixes to flattenLayerOrGroup
- Update documentation (again) using pydoc-markdown 3
- Update documentation
- Added GIF and WEBP support
- Automate tests
- Updated blend.py to map blend types to functions, rather than use a series of if statements
- Modules are no longer optional as this will create excess crashes for what is four additional dependencies
- Fix ResourceWarning when opening a file
- Fixed bug that caused hidden layers to be rendered by default
- Using pypdn 1.05 - PDNs work again on python 3.8
- Fixed incorrect docstrings
- Added SOFTLIGHT and HARDLIGHT
- Added basic support for blend modes NORMAL, MULTIPLY, ADDITIVE, COLOURBURN, COLOURDODGE, REFLECT, GLOW, OVERLAY, DIFFERENCE, NEGATION, LIGHTEN, DARKEN, SCREEN, XOR
- Python 3.5 is no longer supported
- Export to a flat image
- Bugfix: If the file does not exist throws an error instead of exiting
- Added TIFF support 🎉
- Discovered that my patch for
pypdn
cannot be applied so throw an error and message for python 3.8+ (waiting on upstream) 😭 - Therefore no test output for these - Better error for unrecognised extension
- Fixes to saving .ora files.
- Groups are saved with an offset rather than relying on
project.add_layer()
. - Fixed
save_ORA_fix
to save images without additional padding
- Groups are saved with an offset rather than relying on
- Updates to README
LayeredImage.extractLayers
will now 'raster' layers in a group to deal with offsets, dimensions etc
- First release