Photoshopapi

Latest version: v0.5.1

Safety actively analyzes 681812 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.6.0

- Adjustment Layers
- Smart Objects

Performance

- Read and Write speeds of 8-bit files are about 30-40% faster
- Read and Write speeds of 16- and 32-bit files are about 10-15% faster
- Image data extraction from `ImageLayer<T>` now runs fully parallelized
- Python channel extraction speed was greatly improved

Features:

C++ / General
- Add optional `ProgressCallback` that can be passed to read and write functions for `LayeredFile<T>`
- Add support for Unicode layer names. Preferring these over PascalString layer names.
- Add support for CMYK color mode
- Add support for Grayscale color mode
- Make files Krita compatible
- Add support for locked layers
- Add a `PhotoshopFile::findBitdepth()` function which reads out the header and allows for programmatic dispatching of `LayeredFile<T>` instances
- Add a `LayeredFile<T>::flatLayers()` function for getting a flattened layer hierarchy which can be iterated without recursion.
- Add functions for swapping image data: `ImageLayer<T>::setImageData()`, `Layer<T>::setMask()`

Python
- Added more verbose error logging if the image data provided as numpy array does not match what is expected
- LayeredFile: add `flat_layers` property giving you a temporary view over all the layers allowing for easy flat traversal. This is especially useful when applying some operation to all layers like resizing.
- Layer: add `is_visible` property
- Layer: add `is_locked` property
- Layer: add `has_mask()` function
- ImageLayer: add `set_image_data`, `set_channel_by_id` and `set_channel_by_index` functions as well as making the `image_data` property read-writable
- ImageLayer: add `num_channels` and `channels` properties

Bugfixes:

C++ / General
- `findLayerAs()` function no longer raises an error if layer cannot be found but instead returns `nullptr` to be more consistent with `LayeredFile<T>::findLayer()`
- Fix memory leak due to missing call to `blosc2_schunk_free()`
- Fix bug where files with only GroupLayers would not be openable in photoshop
- Mask channels passed to `ImageLayer<T>` as image data now get automatically forwarded to `m_LayerMask`

Python
- Fixed bug where non c-style contiguous arrays wouldn't be parsed correctly (e.g. when using `numpy.reshape()`). This conversion is now forced in-place
- Fix missing `self` argument in psapi-stubs


Deprecations

- Deprecate `Layer<T>::getMaskData()` in favour of `Layer<T>::getMask()`

Breaking changes:

The main breaking changes are to what is considered the internal API. A lot of the files in `Util/` were moved over to `Core/` where appropriate.

`ImageLayer<T>` constructor now takes an `int16_t` rather than `uint16_t`

Python

- The `Layer.layer_mask` property has been removed in favour of `Layer.mask`. This property is now read-writable

CI / Compiling

- Cranked up warnings under MSVC to /W4 and /WX with some additional warnings
- Added ASAN and Valgrind steps to CI for continuous checking of correctness
- Added memory-mapped files as backend for faster load times

0.5.1

Bugfixes

- The previous release (v0.5.0) had missing wheels in the release, we address this here. Any pip install of photoshop should target this version instead of v0.5.0

0.5.0

The `v0.5.0` Release primarily targets adding support for CMYK and Grayscale while also improving the overal consistency of the python bindings. Additionally we added support for trivially replacing image data.

Three new examples were added. Please feel free to check them out!
- [Using Progress callbacks (C++ only for now)](https://github.com/EmilDohne/PhotoshopAPI/tree/master/PhotoshopExamples/ProgressCallbacks)
- [Replacing image data on a layer](https://github.com/EmilDohne/PhotoshopAPI/tree/master/PhotoshopExamples/ReplaceImageData)
- [Rescaling a whole file using OpenCV](https://github.com/EmilDohne/PhotoshopAPI/tree/master/PhotoshopExamples/RescaleCanvas)

Roadmap

0.4.0

The `v0.4.0` Release primarily addresses miscellaneous bug-fixes as well as adding (experimental) support for ARM-based MacOS machines

To get started please download the binaries attached to the release below for your given system and programming language :). To download the python bindings you can also simply `pip install PhotoshopAPI`

Features:

- Added (experimental) support for ARM-Based MacOS Systems (M-Chips)
- Added tests for Python wheels on CI

Bugfixes:

- 62 Python wheels on windows no longer require the vcredist to be installed
- 60 When submoduling via CMake we no longer get a missing import error on C-Blosc2
- Fixed Linux wheels not actually being usable

Known Issues

- When using a `try: except:` block using the PhotoshopAPI on Apple Silicon based machines the code will segfault and crash the python interpreter. This is unfortunately due to XCode issues and will hopefully be resolved soon. For updates please visit 61 to get the latest status on this.
- C++ Exceptions on Apple Silicon are not propagated and will instead simply segfault.

0.3.0

The `v0.3.0` Release attempts to add backwards compatibility for linux python builds

To get started please download the binaries attached to the release below for your given system and programming language :). To download the python bindings you can also simply `pip install PhotoshopAPI`

Features:

- Python Linux builds are now supported (with logging timestamps removed)

0.2.1

This release is identical to v0.2.0 and only fixes upload to PyPi

Bugfixes:

- Fix PyPi Upload

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.