Full layer hierarchy
The SDK understands groups, layers, Smart Objects, and any kind of complex and nested layer setup. Group and layer names as well as other layer specific data is also loaded.
All bit depths supported
The SDK supports loading 8-bit, 16-bit, and 32-bit data in Grayscale and RGB Color mode.
User & vector masks
The library fully supports extracting user & vector masks on both groups and layers, in addition to mask specific data such as feather and density.
The SDK allows fine-grained control over what kind of data is extracted, allowing you to only load what you really need.
Transparency & additional alpha channels
The SDK is able to extract transparency masks and additional alpha channels 1:1, without pre-multiplying their content.
The SDK can export layers and transparency data to Grayscale and RGB Color mode .PSD files, supporting all compression types known to Photoshop.
Lightweight C++, C-like library
The code is written using only a subset of available C++ features, and does not use the STL, RTTI, Multiple Inheritance, or Exceptions. It favors simple data structures over complex inheritance trees.
Except for nullptr and static_assert, the code does not make use of any C++11-only features, thus making it compile on a wide range of different compilers.
No symbol clashes
All code is contained within a single, configurable namespace, so that you will never experience symbol clashes with your own code.
No external dependencies
The code does not need any external dependencies to be set up in order to compile. The only 3rd-party dependency miniz is already included.
The code features a two-step loading API: a very fast parsing step, followed by fully configurable and parallelizable data extraction using async I/O without any seek operations. Threading is controlled by you.
As is standard in the games industry, the code grants total control over all memory allocations and file accesses using interfaces. Additionally, default native implementations are already provided, making everything work right out of the box.
Optimized code paths
Where applicable, the code makes use of platform-specific intrinsics and vectorized instruction sets (SSE2) for bulk work.
The code compiles cleanly under several versions of Visual Studio, GCC, and Clang, even with -Wall, -Wpedantic, and -Weverything applied.
Building the code from scratch or adding it to an existing project is as simple as dropping the provided source files into Visual Studio. No external #defines or #includes need to be set up.
What you get
Full C++ source code
We know how crucial it is to have access to all code during development, be it for getting a better understanding of what happens under the hood, or for debugging purposes. As a logical consequence, the library ships with the complete C++ source code provided.
Visual Studio setup
In addition to the full source code, the SDK provides complete solutions and project files for Visual Studio 2008, 2010, 2012, 2013, and 2015. With everything already set up for you, rebuilding the library is as easy as firing up Visual Studio, and hitting the Build button.
In order to get you started right away, the SDK also ships with sample code that shows how to utilize the different parts of the library. Using the provided code, you will be loading and exporting all kinds of data from .PSD files in less than a few hours.
In case you don't want to build the code yourself, but rather use pre-built binaries, the SDK contains static libraries for Visual Studio 2008, 2010, 2012, 2013, and 2015, built in several flavors to choose from (32-bit & 64-bit, debug & release, static & DLL CRT).
Of course, the library ships with full API documentation, detailing each and every class and function, and how they relate to each other.
The evaluation SDK contains solutions, project files and pre-compiled static libraries for Visual Studio 2008, 2010, 2012, 2013, and 2015, the full API documentation, and sample code. It also ships with all library headers that allow you to try out the library right away.
- For commercial purposes
- One-time license for an unlimited number of shipped products
- Free updates, bug-fixes and patches for 6 months
- General & integration support available separately
- Microsoft® Windows®, 32-bit and 64-bit
- Supported compilers:
Visual Studio 2008 SP1
Visual Studio 2010 SP1
Visual Studio 2012 Update 4
Visual Studio 2013 Update 4
Visual Studio 2015 Update 3
In case you don't have source code access to the engine/pipeline you use, can't integrate the SDK for any other reason, or simply want to keep your current workflow while supporting artists in their export process, make sure to check out our PsdExtract tool instead. The tool internally uses the same library for extracting data from Photoshop files.