Package net.sourceforge.jiu.codecs
Class PSDCodec
java.lang.Object
net.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.codecs.ImageCodec
net.sourceforge.jiu.codecs.PSDCodec
A codec to read images from Photoshop PSD files.
PSD was created by Adobe for their
Photoshop
image editing software.
Note that only a small subset of valid PSD files is supported by this codec.
Typical file extension is
.psd
.- Author:
- Marco Schmidt
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private static final int
private static final int
private static final int
private int
private short
private static final short
private static final short
private int
private Gray8Image
private int
private DataInput
private int
private static final int
private Palette
private Paletted8Image
private RGB24Image
private int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
allocate()
private static String
getColorTypeName
(int colorMode) Returns the name of the file format supported by this codec.String[]
Return the MIME (Multipurpose Internet Mail Extensions) type strings for this format, ornull
if none are available.boolean
Returns if this codec is able to load images in the file format supported by this codec.boolean
Returns if this codec is able to save images in the file format supported by this codec.private void
load()
Attempts to load an Image from argument streamin
(which could, as an example, be aRandomAccessFile
instance, it implements theDataInput
interface).private void
Reads the PSD header to private members of this class instance.private void
private void
loadPackbitsCompressedData
(byte[] data, int offset, int num) void
process()
This method does the actual work of the operation.Methods inherited from class net.sourceforge.jiu.codecs.ImageCodec
appendComment, checkBounds, checkImageResolution, close, getBoundsHeight, getBoundsWidth, getBoundsX1, getBoundsX2, getBoundsY1, getBoundsY2, getComment, getDataInput, getDataOutput, getDpiX, getDpiY, getFileExtensions, getImage, getImageIndex, getInputAsDataInput, getInputStream, getMode, getNumComments, getOutputAsDataOutput, getOutputStream, getRandomAccessFile, hasBounds, initModeFromIOObjects, isRowRequired, isTileRequired, removeAllComments, removeBounds, setBounds, setBoundsIfNecessary, setDataInput, setDataOutput, setDpi, setFile, setFile, setImage, setImageIndex, setInputStream, setOutputStream, setRandomAccessFile, suggestFileExtension
Methods inherited from class net.sourceforge.jiu.ops.Operation
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
-
Field Details
-
MAGIC_8BPS
private static final int MAGIC_8BPS- See Also:
-
COLOR_MODE_GRAYSCALE
private static final int COLOR_MODE_GRAYSCALE- See Also:
-
COLOR_MODE_INDEXED
private static final int COLOR_MODE_INDEXED- See Also:
-
COLOR_MODE_RGB_TRUECOLOR
private static final int COLOR_MODE_RGB_TRUECOLOR- See Also:
-
COMPRESSION_NONE
private static final short COMPRESSION_NONE- See Also:
-
COMPRESSION_PACKBITS
private static final short COMPRESSION_PACKBITS- See Also:
-
magic
private int magic -
channels
private int channels -
height
private int height -
width
private int width -
depth
private int depth -
colorMode
private int colorMode -
compression
private short compression -
in
-
gray8Image
-
palette
-
paletted8Image
-
rgb24Image
-
-
Constructor Details
-
PSDCodec
public PSDCodec()
-
-
Method Details
-
allocate
private void allocate() -
getColorTypeName
-
getFormatName
Description copied from class:ImageCodec
Returns the name of the file format supported by this codec. All classes extendingImageCodec
must override this method. When overriding, leave out any words in a particular language so that this format name can be understood by everyone. Usually it is enough to return the format creator plus a typical abbreviation, e.g.Microsoft BMP
orPortable Anymap (PNM)
.- Specified by:
getFormatName
in classImageCodec
- Returns:
- name of the file format supported by this codec
-
getMimeTypes
Description copied from class:ImageCodec
Return the MIME (Multipurpose Internet Mail Extensions) type strings for this format, ornull
if none are available.- Specified by:
getMimeTypes
in classImageCodec
- Returns:
- MIME type strings or null
-
isLoadingSupported
public boolean isLoadingSupported()Description copied from class:ImageCodec
Returns if this codec is able to load images in the file format supported by this codec. Iftrue
is returned this does not necessarily mean that all files in this format can be read, but at least some.- Specified by:
isLoadingSupported
in classImageCodec
- Returns:
- if loading is supported
-
isSavingSupported
public boolean isSavingSupported()Description copied from class:ImageCodec
Returns if this codec is able to save images in the file format supported by this codec. Iftrue
is returned this does not necessarily mean that all types files in this format can be written, but at least some.- Specified by:
isSavingSupported
in classImageCodec
- Returns:
- if saving is supported
-
load
private void load() throws InvalidFileStructureException, IOException, UnsupportedTypeException, WrongFileFormatExceptionAttempts to load an Image from argument streamin
(which could, as an example, be aRandomAccessFile
instance, it implements theDataInput
interface). Checks a magic byte sequence and then reads all chunks as they appear in the IFF file. Will return the resulting image or null if no image body chunk was encountered before end-of-stream. Will throw an exception if the file is corrupt, information is missing or there were reading errors. -
loadHeader
Reads the PSD header to private members of this class instance.- Throws:
IOException
- if there were reading errorsWrongFileFormatException
-
loadPackbitsCompressedData
private void loadPackbitsCompressedData(byte[] data, int offset, int num) throws InvalidFileStructureException, IOException -
loadImageData
-
process
Description copied from class:Operation
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.- Overrides:
process
in classOperation
- Throws:
WrongParameterException
- if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)MissingParameterException
- if any mandatory parameter was not given to the operationOperationFailedException
-