Hi all.
The input side of the PSD plugin is coming along steadily.
Here is what I've completed recently:
-Optimized/redesigned resource loading (loading only resources that we have
support for)
-Correct ImageSpec creation (tested with various 1, 8, 16, and 32-bit
Bitmap, Grayscale, Indexed, RGB, CMYK, Lab, and Multichannel images)
-Channel names (loaded from image resource when present)
-attribute X/YResolution and ResolutionUnit
-attribute PixelAspectRatio
-Reading layers (everything except actual pixel data is done)
-Adding some subimage bits (not complete yet)
Here is some iinfo output:
$ dist/linux64/bin/iinfo -v ../multichannel_16bit.psd
../multichannel_16bit.psd : 504 x 360, 3 channel, uint16 psd
channel list: Cyan, Magenta, Yellow
oiio:BitsPerSample: 48
XResolution: 72
YResolution: 72
ResolutionUnit: "in"
PixelAspectRatio: 1
Note that the channel names are custom names that can be changed in
Photoshop (they happen to have those names because I converted from a CMYK
IIRC).
I struggled a bit since the file format specs left out at least one
important alignment detail (an issue I thankfully found mentioned in code
from 2007).
I'm now to a point that the only real thing left to do is to read the actual
image data (layers and merged).
By midterm I hope to have the following accomplished:
-Complete subimage support (index 0 for merged composite, 1 for first layer,
etc)
-Support all compression modes (Raw, RLE, ZIP, ZIP w/prediction)
-Read Bitmap image data
-Read RGB image data
-Read Indexed image data
-Read Exif and/or XMP metadata from image resources
-Split the code up (psdinput.cpp is over 1k lines now)
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org