A Qt 6 module for parsing, rendering, and exporting Adobe Photoshop PSD files. Provides a core parsing library, rendering components, and a plugin-based exporter with support for multiple UI frameworks.
- Layer Parsing: Extracts layers (text, shapes, images, folders, adjustment layers) in a tree structure
- Effects Support: Layer effects including shadows, bevels, glows, and more
- Color Modes: Bitmap, Grayscale, Indexed, RGB, CMYK, Lab, Multichannel, and Duotone (8/16/32-bit depths)
- Rendering: QGraphicsView-based rendering with 74% visual similarity to Photoshop (similarity report)
- Export: Plugin-based export to Flutter, Qt Quick, Slint, SwiftUI, React Native, LVGL, images, JSON, and custom templates
- Plugin Architecture: Extensible system for layer information, effects, descriptors, and exporters
| Module | Description |
|---|---|
| PsdCore | Core library for parsing PSD file structure |
| PsdGui | Rendering layer: converts parsed data to QImage, layer item hierarchy |
| PsdWidget | QGraphicsView-based scene for PSD visualization |
| PsdExporter | Export library with plugin infrastructure |
- Qt 6.8 or later
$ git clone https://github.com/signal-slot/qtpsd.git
$ cd qtpsd
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/qt/project
$ cmake --build .
$ cmake --install .A GUI application for viewing and exporting PSD files:
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/qt/project -DQT_BUILD_EXAMPLES=ON
$ cmake --build .
$ ./src/apps/psdexporter/psdexporterCommand-line tool for rendering PSD files to PNG:
$ ./examples/psdwidget/psd2png/psd2png input.psd -o output.png
$ ./examples/psdwidget/psd2png/psd2png input.psd --image-data # use baked image data
$ ./examples/psdwidget/psd2png/psd2png input.psd --layers # print layer infoCommand-line utility to display PSD file metadata (dimensions, color mode, bit depth, channels):
$ ./examples/psdcore/psdinfo/psdinfo input.psdfind_package(Qt6 COMPONENTS PsdCore PsdGui PsdWidget PsdExporter REQUIRED)
target_link_libraries(your_app PRIVATE
Qt::PsdCore
Qt::PsdGui
Qt::PsdWidget
Qt::PsdExporter
)This module is licensed under the LGPLv3, GPLv2 or GPLv3 License.