Frequently asked questions
1. How can I install the Libpsd?
The Libpsd is written in C language, which is the universal computer language to edit, compile and run on many platforms. You can create a make file or a workspace to
compile
all the *.c files, pay attention to setting the include folder for it. You will build a static library or a dll, include the library and link to your project.
2. How can I use the Libpsd to decode the Photoshop files?
In the main header file, libpsd.h, you will find the extern declare functions at the end of this file. For example, use the psd_image_load() to load the psd context pointer, the second parameter is the destination psd file. And the function will return the result, if it's psd_done, the Libpsd runs correctly. Otherwise, it returns other values below 0. See the defines in libpsd.h to get the error reason.
3. Make sure it can run on your platform.
The psd_system.c file is the important file for your platform. The original file is written for standard C, the memory management and file system are the standard C usage. Maybe you should change this file to adapt for current system.
4. The compiler says missing library when I link the project.
Libpsd depends on the following libraries, you have to download them before you compile Libpsd. See psd_config.h, you can undef some of the libraries, but the Zlib is necessary.
Libjpeg: We need libjpeg to get the thumbnail, you can download libjpeg from http://sourceforge.net/projects/libjpeg.
Zlib: Photoshop CS and CS2 use the zip arithmetic for data uncompression, you can download zlib from http://www.zlib.net.
Libxml: We need libxml to get the XMP metadata, you can download libxml from http://sourceforge.net/projects/libxml.
Libexif: We need libexif to get the exif info, you can download EXIF Tag Parsing Library from http://sourceforge.net/projects/libexif.
5. Why can't Libpsd decode *.psd file saved by Photoshop CS2?
Yes. Currently, Libpsd can't read the file saved by Photoshop CS2. Since we haven't gotten the CS2 format document. So does Photoshop CS3(beta). If you have these up-to-date documents or SDK, please send them to us, libpsd@graphest.com. Thanks for your generosity.
6. Can Libpsd read the image data which encodes by zip with or without prediction?
Yes. After Photoshop CS, it encodes the image data with zip format by default. Although it isn't documented in SDK, finally, Libpsd can read it correctly. It also can read the image data saved as 16 bit colors.
7. There are many *.psd files which crashes the project because the Libpsd decodes them incorrectly.
Current Libpsd is the test version, and it still has many bugs and further questions. Please send your incorrect psd files to us, libpsd@graphest.com, compress them with zip or rar, be sure the attachment size is below 5MB.
8. Share your experience to improve Libpsd.
Libpsd is not perfect, and it needs to upgrade continuously. If your experience is useful for it, we glad to hear that, and you can email to us about the suggestions and further questions, libpsd@graphest.com. Libpsd is also published on SourceForge, you can visit http://sourceforge.net/projects/libpsd.
9. Known bugs and unfinished functions.
When the psd files are based on CMYK, LAB and multi-channel color spaces, Libpsd will convert the colors incorrectly, because it doesn't use the tables to convert the colors.
The adjustment layers only support for RGB and grayscale color spaces.
The layer effects only support for RGB and grayscale color spaces.
Some of the blend modes don't blend incorrectly, we know the formula is the problem in psd_blend.h.
Can't adjust the fill opacity when the color mode isn't normal.
Don't get the type information, includes font face, size, color, arragement, etc.
Don't support for vector mask.
Don't support for photo filter adjustment layer, because we don't know the arithmetic.
The knock out color is inaccurate.
The noise is different from Photoshop.
Inaccurate choke and spread for inner shadow or inner glow.
We don't understand the phase of pattern overlay, then the pattern can't move.
Don't implement the bevel emboss, because we don't find the standard way to blend it correctly. |