Git Product home page Git Product logo

libqpsd's Introduction

libqpsd

PSD (Photoshop Document) & PSB (Photoshop Big) Plugin for Qt/C++ (Qt4/Qt5)

This project is based on the Adobe Photoshop File Formats Specification

Support

If you like libqpsd or if it is useful to you, show your support by sponsoring my projects.

Github Sponsors

FEATURES

Supported Formats

  • PSD
  • PSB

Supported Compressions

  • Raw
  • RLE
  • Zip without Prediction
  • Zip with Prediction

Supported Color Modes

  • Bitmap
  • Grayscale
  • Indexed
  • RGB
  • CMYK
  • Multichannel
  • Duotone
  • Lab

Supported Depths

  • 1-bit (Bitmap)
  • 8-bits
  • 16-bits (Note: 16-bit depth is scaled down to 8-bits)
  • 32-bits (Tonemapping Algorithm, needed help!)

CONTRIBUTE

  • If you have an existing PSD/PSB file with different color mode or compression. Feel free to send me an email. I need samples with zip-compressed layers (zip w/ or w/o prediction).
  • If you want to contribute to the code, just fork the project and pull requests.

AUTHOR

CONTRIBUTORS

LIST OF SOFTWARE USING libqpsd

REFERENCES

libqpsd's People

Contributors

aa-bamboo avatar diemmarkus avatar eli-schwartz avatar roniemartinez avatar yuezhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libqpsd's Issues

Packaging nightmare

I'd like to package libqpsd for Arch Linux (needed for nomacs - at least most likely in the future).
Sadly, using qmake is a nightmare...

Currently, I'm trying something in the vein of:

mkdir build
cd build  
qmake "QT_INSTALL_PLUGINS=/usr/lib/qt/plugins" ..
make
make DESTDIR="${pkgdir}" install

However, the install target just deletes the .so file and then all fails.
In the end I end up manually placing the .so file into the package file system...
It seems, the .pro file is actually pretty unusable on Linux.
There's no documentation on how to use it, what the variables actually do and what the estimated outcome would be.
Any help on how to procede would be very much appreciated!

Resources for Duotone Specification

As described in the PSD File Format Specification:

"Duotone images: color data contains the duotone specification (the format of which is not documented). Other applications that read Photoshop files can treat a duotone image as a gray image, and just preserve the contents of the duotone information when reading and writing the file."

I do understand how duotones are created, the only problem is the structure of the file (and possible computation) which is not readily available. Anybody who tried to deal with duotones (monotone, duotone, tritone, quadtone)? Or possible links, sites, resources, etc. will be a big help.

Lab to RGB color conversion discrepancies

Hi!

I was able to obtain a copy of a PSB file from a Qt-Project username "asgohtals" (http://qt-project.org/forums/viewthread/22179/) in Lab color mode (with alpha color, aLab) and found out that the alpha channel is somewhat inverted (opaque = 0 and transparent = 255). I also found the reason why the Lab-to-RGB conversion algorithm cannot convert few pixels correctly since the calculated RGB falls outside the range 0-255.

Although libqpsd was able to render the image, there is a big discrepancy in color as shown in this screenshot (https://www.dropbox.com/s/3rbpkm5ddyrvcse/color%20difference.PNG). The image shown in photoshop software was sharper than the image rendered in a Qt-based image viewer I created.

Please release more frequently

It would be awesome, if libqpsd could have more frequent releases (through tags).
There are some major improvements since the last (and currently only) version tagged.

For distribution package maintainers this is very valuable, as libqpsd is a dependency for nomacs and it would be very good to finally be able to actually use the distribution's libqpsd version, when building nomacs.

Thanks for your work!

Incorrect reading images with transparent pixels

I have some psd file with transparency background. I try load it with libqpsd, but some pixels with opacity displays incorrect:
test
Left - psd file, loaded with libqsd, right - png file saved from same psd file using photoshop.
Psd file format: RGB color, 8-bits per channel, Photoshop CS5.
Same thing has in all my psd files having non-white transparent pixels.

32-bit support

I am having problem converting 32-bit depth into 8-bit depth. It seems that I can get the image's "silhouette" using the formula
value_8bit = value_32bit * (qPow (2, 8) - 1) / (qPow(2, 32) - 1)

But if I multiply it again with (qPow (2,8) -1) or 255, the image is almost close, at least at "grayscale" mode. I can't find any references on the conversion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.