public class Layer extends RasterCachedImage
The psd layer.
RasterCachedImage.RotateTestMode
Modifier and Type | Field and Description |
---|---|
static int |
BlendSignature
Represents blend mode signature.
|
static int |
LayerHeaderSize
The layer header size.
|
Constructor and Description |
---|
Layer()
Initializes a new instance of the
Layer class. |
Layer(InputStream stream)
Initializes a new instance of the
Layer class. |
Layer(RasterImage image) |
Layer(RasterImage image,
boolean disposeImage)
Initializes a new instance of the
Layer class. |
Layer(Rectangle bounds,
byte[] redBytes,
byte[] greenBytes,
byte[] blueBytes,
String name)
Initializes a new instance of the
Layer class from byte arrays. |
Modifier and Type | Method and Description |
---|---|
void |
addLayerMask(LayerMaskData layerMask)
Adds the mask to current layer.
|
void |
drawImage(Point location,
RasterImage image)
Draws the image on layer.
|
boolean |
equals(Object obj)
Determines whether the specified
Object , is equal to this instance. |
int |
getBitsPerPixel()
Gets the image bits per pixel count.
|
BlendingOptions |
getBlendingOptions()
Gets the blending options.
|
long |
getBlendModeKey()
Gets or sets the blend mode key.
|
int |
getBlendModeSignature()
Gets the blend mode signature.
|
int |
getBottom()
Gets or sets the bottom layer position.
|
ChannelInformation[] |
getChannelInformation()
Gets or sets the channel information.
|
int |
getChannelsCount()
Gets the layer's channels count.
|
byte |
getClipping()
Gets or sets the layer clipping.
|
String |
getDisplayName()
Gets the display name of the layer.
|
int |
getExtraLength()
Gets the layer extra information length in bytes.
|
byte |
getFiller()
Gets or sets the layer filler.
|
int |
getFillOpacity()
Gets or sets the fill opacity.
|
byte |
getFlags()
Gets or sets the layer flags.
|
int |
getHeight()
Gets the image height.
|
LayerBlendingRangesData |
getLayerBlendingRangesData()
Gets or sets the layer blending ranges data.
|
Date |
getLayerCreationDateTime()
Gets or sets the layer creation date time.
|
int |
getLayerLock()
Gets or sets the layer lock.
|
LayerMaskData |
getLayerMaskData()
Gets or sets the layer mask data.
|
PsdOptions |
getLayerOptions()
Gets the layer options.
|
int |
getLeft()
Gets or sets the left layer position.
|
int |
getLength()
Gets the overall layer length in bytes.
|
String |
getName()
Gets or sets the layer name.
|
byte |
getOpacity()
Gets or sets the layer opacity.
|
LayerResource[] |
getResources()
Gets or sets the layer resources.
|
int |
getRight()
Gets or sets the right layer position.
|
short |
getSheetColorHighlight()
Gets or sets the decorative sheet color highlight in layers' list
|
int |
getTop()
Gets or sets the top layer position.
|
int |
getWidth()
Gets the image width.
|
boolean |
hasAlpha()
Gets a value indicating whether this instance has alpha.
|
int |
hashCode()
Returns a hash code for this instance.
|
boolean |
isVisible()
Gets or sets a value indicating whether the layer is visible
|
boolean |
isVisibleInGroup()
Gets a value indicating whether this instance is visible in group(If layer is not in group it means root group).
|
void |
mergeLayerTo(Layer layerToMergeInto)
Merges the layer to specified layer
|
void |
save(OutputStream dstStream,
ImageOptionsBase optionsBase,
Rectangle boundsRectangle)
Saves the image's data to the specified stream in the specified file format according to save options.
|
void |
save(String filePath,
boolean overWrite)
Saves the object's data to the specified file location.
|
void |
save(String filePath,
ImageOptionsBase options)
Saves the object's data to the specified file location in the specified file format according to save options.
|
void |
save(String filePath,
ImageOptionsBase options,
Rectangle boundsRectangle)
Saves the object's data to the specified file location in the specified file format according to save options.
|
void |
setBlendModeKey(long value)
Gets or sets the blend mode key.
|
void |
setBottom(int value)
Gets or sets the bottom layer position.
|
void |
setChannelInformation(ChannelInformation[] value)
Gets or sets the channel information.
|
void |
setClipping(byte value)
Gets or sets the layer clipping.
|
void |
setDisplayName(String value)
Gets or sets the display name of the layer.
|
void |
setFiller(byte value)
Gets or sets the layer filler.
|
void |
setFillOpacity(int value)
Gets the fill opacity.
|
void |
setFlags(byte value)
Gets or sets the layer flags.
|
void |
setLayerBlendingRangesData(LayerBlendingRangesData value)
Gets or sets the layer blending ranges data.
|
void |
setLayerCreationDateTime(Date value)
Gets or sets the layer creation date time.
|
void |
setLayerLock(int value)
Gets or sets the layer lock (Note that if flag LayerFlags.TransparencyProtected is set it will be overritten by layer lock flag.
|
void |
setLayerMaskData(LayerMaskData value)
Gets or sets the layer mask data.
|
void |
setLeft(int value)
Gets or sets the left layer position.
|
void |
setName(String name)
Sets the layer name.
|
void |
setOpacity(byte value)
Gets or sets the layer opacity.
|
void |
setResources(LayerResource[] value)
Gets or sets the layer resources.
|
void |
setRight(int value)
Gets or sets the right layer position.
|
void |
setSheetColorHighlight(short value)
Gets or sets the decorative sheet color highlight in layers' list
|
void |
setTop(int value)
Gets or sets the top layer position.
|
void |
setVisible(boolean value)
Gets or sets a value indicating whether the layer is visible
|
Layer |
shallowCopy()
Creates a shallow copy of the current Layer.
|
adjustBrightness, adjustContrast, adjustGamma, adjustGamma, binarizeBradley, binarizeBradley, binarizeFixed, binarizeOtsu, cacheData, crop, dither, doRotate, getRotateMode, grayscale, isCached, resize, resize, rotate, rotateFlip
crop, dither, filter, getArgb32Pixel, getDefaultArgb32Pixels, getDefaultPixels, getDefaultRawData, getDefaultRawData, getHorizontalResolution, getImageOpacity, getModifyDate, getPixel, getPremultiplyComponents, getRawCustomColorConverter, getRawDataFormat, getRawDataSettings, getRawFallbackIndex, getRawIndexedColorConverter, getRawLineSize, getSkewAngle, getTransparentColor, getUpdateXmpData, getUseRawData, getVerticalResolution, getXmpData, hasTransparentColor, isRawDataAvailable, isUsePalette, loadArgb32Pixels, loadArgb64Pixels, loadCmyk32Pixels, loadCmykPixels, loadPartialArgb32Pixels, loadPartialPixels, loadPixels, loadRawData, loadRawData, normalizeAngle, normalizeAngle, readArgb32ScanLine, readScanLine, replaceColor, replaceColor, replaceNonTransparentColors, replaceNonTransparentColors, rotate, saveArgb32Pixels, saveCmyk32Pixels, saveCmykPixels, savePixels, saveRawData, setArgb32Pixel, setHorizontalResolution, setPalette, setPixel, setPremultiplyComponents, setRawCustomColorConverter, setRawFallbackIndex, setRawIndexedColorConverter, setResolution, setTransparentColor, setTransparentColor, setUpdateXmpData, setUseRawData, setVerticalResolution, setXmpData, toBitmap, writeArgb32ScanLine, writeScanLine
canLoad, canLoad, canLoad, canLoad, canSave, create, create, create, getBackgroundColor, getBounds, getBufferSizeHint, getContainer, getDefaultOptions, getFileFormat, getFileFormat, getFileFormat, getFittingRectangle, getFittingRectangle, getInterruptMonitor, getOriginalOptions, getPalette, getProgressEventHandler, getProgressEventHandlerInfo, getProportionalHeight, getProportionalWidth, getSize, hasBackgroundColor, isAutoAdjustPalette, load, load, load, load, load, load, resize, resizeHeightProportionally, resizeHeightProportionally, resizeHeightProportionally, resizeWidthProportionally, resizeWidthProportionally, resizeWidthProportionally, save, save, save, save, setAutoAdjustPalette, setBackgroundColor, setBackgroundColor, setBufferSizeHint, setInterruptMonitor, setPalette
getDataStreamContainer, save, save, save, setDataStreamContainer
close, dispose, getDisposed
public static final int LayerHeaderSize
The layer header size.
public static final int BlendSignature
Represents blend mode signature.
public Layer()
Initializes a new instance of the Layer
class. Constructor for lazy initialization.
public Layer(RasterImage image)
public Layer(RasterImage image, boolean disposeImage)
Initializes a new instance of the Layer
class.
image
- The image.disposeImage
- if set to true
[dispose image].public Layer(InputStream stream)
Initializes a new instance of the Layer
class.
stream
- The image streampublic Layer(Rectangle bounds, byte[] redBytes, byte[] greenBytes, byte[] blueBytes, String name)
Initializes a new instance of the Layer
class from byte arrays.
bounds
- The layer bounds.redBytes
- The red bytes.greenBytes
- The green bytes.blueBytes
- The blue bytes.name
- The layer name.PsdImageException
- Byte arrays can not be empty
or
Byte arrays length must equal bounds dimensions (bounds.getWidth() * bounds.getHeight())public final LayerResource[] getResources()
Gets or sets the layer resources.
Value: The layer resources.public final void setResources(LayerResource[] value)
Gets or sets the layer resources.
Value: The layer resources.public boolean hasAlpha()
Gets a value indicating whether this instance has alpha.
Value:true
if this instance has alpha; otherwise, false
.hasAlpha
in class RasterImage
true
if this instance has alpha; otherwise, false
.public final String getName()
Gets or sets the layer name.
Value: The layer name.public final BlendingOptions getBlendingOptions()
Gets the blending options.
Value: The blending options.public final String getDisplayName()
Gets the display name of the layer.
Value: The display name of the layer.public final void setDisplayName(String value)
Gets or sets the display name of the layer.
Value: The display name of the layer.public final int getFillOpacity()
Gets or sets the fill opacity.
PsdImageArgumentException
- Fill opacity can be only in the range from 0 to 100
Value:
The fill opacity in range from 0 to 100public final void setFillOpacity(int value)
Gets the fill opacity.
PsdImageArgumentException
- Fill opacity can be only in the range from 0 to 100
Value:
The fill opacity in range from 0 to 100public final Date getLayerCreationDateTime()
Gets or sets the layer creation date time.
Value: The layer's creation date time. If there is no data about creation DateTime then returns Unix Time first epochpublic final void setLayerCreationDateTime(Date value)
Gets or sets the layer creation date time.
Value: The layer's creation date time. If there is no data about creation DateTime then returns Unix Time first epochpublic final short getSheetColorHighlight()
Gets or sets the decorative sheet color highlight in layers' list
Value: The sheet color highlight.public final void setSheetColorHighlight(short value)
Gets or sets the decorative sheet color highlight in layers' list
Value: The sheet color highlight.public final int getTop()
Gets or sets the top layer position.
Value: The top layer position.public final void setTop(int value)
Gets or sets the top layer position.
Value: The top layer position.public final int getLeft()
Gets or sets the left layer position.
Value: The left layer position.public final void setLeft(int value)
Gets or sets the left layer position.
Value: The left layer position.public final int getBottom()
Gets or sets the bottom layer position.
Value: The bottom layer position.public final void setBottom(int value)
Gets or sets the bottom layer position.
Value: The bottom layer position.public final int getRight()
Gets or sets the right layer position.
Value: The right layer position.public final void setRight(int value)
Gets or sets the right layer position.
Value: The right layer position.public final int getChannelsCount()
Gets the layer's channels count.
Value: The layer's channels count.public final ChannelInformation[] getChannelInformation()
Gets or sets the channel information.
Value: The channel information.public final void setChannelInformation(ChannelInformation[] value)
Gets or sets the channel information.
Value: The channel information.public final int getBlendModeSignature()
Gets the blend mode signature.
Value: The blend mode signature.public long getBlendModeKey()
Gets or sets the blend mode key.
Value: The blend mode key.public void setBlendModeKey(long value)
Gets or sets the blend mode key.
Value: The blend mode key.An example of loading a PSD file containing a layer group with the Pass Through blending mode applied. It loads the PSD file and verifies whether it was correctly read then saves two copies of the original file in the PSD and PNG file formats and two copies in the same file formats with the Normal blending mode applied to the layer group.
// Keep the methods in the local scope (just to simplify copy-pasting) class LocalScopeExtension { void assertIsTrue(boolean condition, String message) { if (!condition) { throw new FormatException(message); } } } LocalScopeExtension $ = new LocalScopeExtension(); String inPsdFilePath = "Apple.psd"; String outPsdFilePath = "Output" + inPsdFilePath; String outPngFilePath = "OutputApple.png"; String outPsdFilePath1 = "Normal" + outPsdFilePath; String outPngFilePath1 = "Normal" + outPngFilePath; // Load a PSD file containing a predefined layer group PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath); try { // Make sure the loaded PSD file contains the predefined layer group $.assertIsTrue(psdImage.getLayers().length >= 24, "There is not 24rd layer."); LayerGroup layerGroup = (LayerGroup)psdImage.getLayers()[23]; $.assertIsTrue(layerGroup != null, "The 24rd layer is not a layer group."); $.assertIsTrue(layerGroup.getName().equals("AdjustmentGroup"), "The 24rd layer name is not 'AdjustmentGroup'."); $.assertIsTrue(layerGroup.getBlendModeKey() == BlendMode.PassThrough, "AdjustmentGroup layer should have 'pass through' blend mode."); // Save a copy of the loaded PSD file on the specified path psdImage.save(outPsdFilePath, new PsdOptions()); // Save the loaded AI file as a PNG file with a white background PngOptions pngOptions = new PngOptions(); pngOptions.setColorType(PngColorType.TruecolorWithAlpha); psdImage.save(outPngFilePath, pngOptions); // Change the blending mode for the layer group layerGroup.setBlendModeKey(BlendMode.Normal); // Save a copy of the loaded PSD file including the changes on the specified path psdImage.save(outPsdFilePath1, new PsdOptions()); // Save the loaded AI file including the changes as a PNG file with a white background PngOptions pngOptions1 = new PngOptions(); pngOptions1.setColorType(PngColorType.TruecolorWithAlpha); psdImage.save(outPngFilePath1, pngOptions1); } finally { psdImage.dispose(); }
public final byte getOpacity()
Gets or sets the layer opacity. 0 = transparent, 255 = opaque.
Value: The layer opacity.public final void setOpacity(byte value)
Gets or sets the layer opacity. 0 = transparent, 255 = opaque.
Value: The layer opacity.public final byte getClipping()
Gets or sets the layer clipping. 0 = base, 1 = non-base.
Value: The layer clipping.public final void setClipping(byte value)
Gets or sets the layer clipping. 0 = base, 1 = non-base.
Value: The layer clipping.public final byte getFlags()
Gets or sets the layer flags. bit 0 = transparency protected; bit 1 = visible; bit 2 = obsolete; bit 3 = 1 for Photoshop 5.0 and later, tells if bit 4 has useful information; bit 4 = pixel data irrelevant to appearance of document.
Value: The layer flags.public final void setFlags(byte value)
Gets or sets the layer flags. bit 0 = transparency protected; bit 1 = visible; bit 2 = obsolete; bit 3 = 1 for Photoshop 5.0 and later, tells if bit 4 has useful information; bit 4 = pixel data irrelevant to appearance of document.
Value: The layer flags.public final byte getFiller()
Gets or sets the layer filler.
Value: The layer filler.public final void setFiller(byte value)
Gets or sets the layer filler.
Value: The layer filler.public final int getLength()
Gets the overall layer length in bytes.
public final int getExtraLength()
Gets the layer extra information length in bytes.
Value: The extra layer length.public final LayerMaskData getLayerMaskData()
Gets or sets the layer mask data.
Value: The layer mask data.public final void setLayerMaskData(LayerMaskData value)
Gets or sets the layer mask data.
Value: The layer mask data.public final LayerBlendingRangesData getLayerBlendingRangesData()
Gets or sets the layer blending ranges data.
Value: The layer blending ranges data.public final void setLayerBlendingRangesData(LayerBlendingRangesData value)
Gets or sets the layer blending ranges data.
Value: The layer blending ranges data.public int getBitsPerPixel()
Gets the image bits per pixel count.
Value: The image bits per pixel count.getBitsPerPixel
in class Image
public int getHeight()
Gets the image height.
Value: The image height.getHeight
in interface IObjectWithBounds
getHeight
in class Image
public int getWidth()
Gets the image width.
Value: The image width.getWidth
in interface IObjectWithBounds
getWidth
in class Image
public final PsdOptions getLayerOptions()
Gets the layer options.
Value: The layer options.public final boolean isVisible()
Gets or sets a value indicating whether the layer is visible
Value:true
if this instance is visible; otherwise, false
.public final void setVisible(boolean value)
Gets or sets a value indicating whether the layer is visible
Value:true
if this instance is visible; otherwise, false
.public boolean isVisibleInGroup()
Gets a value indicating whether this instance is visible in group(If layer is not in group it means root group).
Value:true
if this instance is visible in group; otherwise, false
.public final int getLayerLock()
Gets or sets the layer lock. Note that if flag LayerFlags.TransparencyProtected is set it will be overwritten by layer lock flag. To return LayerFlags.TransparencyProtected flag need to apply for layer option layer.Flags |= LayerFlags.TransparencyProtected
Value: The layer lock.public final void setLayerLock(int value)
Gets or sets the layer lock (Note that if flag LayerFlags.TransparencyProtected is set it will be overritten by layer lock flag. To return LayerFlags.TransparencyProtected flag need to apply for layer option layer.Flags |= LayerFlags.TransparencyProtected
Value: The layer lock.public final Layer shallowCopy()
Creates a shallow copy of the current Layer. Please for explanation.
public void save(String filePath, ImageOptionsBase options)
Saves the object's data to the specified file location in the specified file format according to save options.
public void save(String filePath, boolean overWrite)
Saves the object's data to the specified file location.
save
in class DataStreamSupporter
filePath
- The file path to save the object's data to.overWrite
- if set to true
over write the file contents, otherwise append will occur.public void save(OutputStream dstStream, ImageOptionsBase optionsBase, Rectangle boundsRectangle)
Saves the image's data to the specified stream in the specified file format according to save options.
public void save(String filePath, ImageOptionsBase options, Rectangle boundsRectangle)
Saves the object's data to the specified file location in the specified file format according to save options.
public boolean equals(Object obj)
Determines whether the specified Object
, is equal to this instance.
public int hashCode()
Returns a hash code for this instance.
public final void addLayerMask(LayerMaskData layerMask)
Adds the mask to current layer.
layerMask
- The layer mask.PsdImageException
- Full layer mask is not supported for setting yet, please use LayerMaskDataShortpublic void mergeLayerTo(Layer layerToMergeInto)
Merges the layer to specified layer
layerToMergeInto
- The layer to merge into.public final void drawImage(Point location, RasterImage image)
Draws the image on layer.
location
- The location.image
- The image.PsdImageException
- Location must be non-negativepublic final void setName(String name)
Sets the layer name.
name
- The layer name.