LoadPsdLayer Method (original) (raw)
Summary
Loads the specified layer from the specified PSD file.
Syntax
Parameters
fileName
A String containing the name of the image file to load.
bitsPerPixel
Resulting image pixel depth. Valid values are:
Value | Meaning |
---|---|
0 | Keep the original file's pixel depth (Do not convert). |
1 to 8 | The specified bits per pixel in the resulting image. |
12 | 12 bits per pixel in the resulting image. |
16 | 16 bits per pixel in the resulting image. |
24 | 24 bits per pixel in the resulting image. |
32 | 32 bits per pixel in the resulting image. |
48 | 48 bits per pixel in the resulting image. |
64 | 64 bits per pixel in the resulting image. |
order
The desired color order.
layer
Index of the layer to load. This index is zero-based. Pass 0 to load the first layer, 1 to load the second layer, etc.
layerInfo
a CodecsPsdLayerInfo object to be updated with information about the loaded layer. Pass a null reference for this parameter if layer information is not needed.
Return Value
The RasterImage object that this method loads.
Example
This example will create and save a PSD with layers before re-loading the first layer back
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
public void PsdLayersExample()
{
RasterCodecs codecs = new RasterCodecs();
string[] layerFileNames =
{
Path.Combine(LEAD_VARS.ImagesDir, "Sample1.cmp"),
Path.Combine(LEAD_VARS.ImagesDir, "Sample2.cmp"),
Path.Combine(LEAD_VARS.ImagesDir, "Sample3.cmp"),
};
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.psd");
// Load the layer images (as pages in 1 image)
RasterImage layersImage = null;
foreach (string layerFileName in layerFileNames)
{
RasterImage layerImage = codecs.Load(layerFileName);
if (layersImage == null)
layersImage = layerImage;
else
layersImage.AddPage(layerImage);
}
// Load the image that is made up of all the layers
RasterImage image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.BgrOrGray, 1, 1);
// Save this image and all the layers
codecs.SavePsdWithLayers(image, destFileName, 0, layersImage, null);
image.Dispose();
layersImage.Dispose();
CodecsImageInfo imageInfo = codecs.GetInformation(destFileName, false);
if (imageInfo.Psd.Layers > 0)
{
int layer = 0;
CodecsPsdLayerInfo layerInfo = new CodecsPsdLayerInfo();
RasterImage layerImage = codecs.LoadPsdLayer(destFileName, 0, CodecsLoadByteOrder.BgrOrGray, layer, layerInfo);
layerInfo.Clipping = 0;
layerInfo.Left = 0;
layerInfo.LoadMaskImage = true;
layerInfo.MaskImage = null;
layerInfo.Name = null;
layerInfo.Opacity = 0;
layerInfo.Top = 0;
string blendModeKey = Encoding.ASCII.GetString(layerInfo.GetBlendModeKey());
Debug.WriteLine("Loaded layer at index {0}, size is {1} by {2}, Blend mode key:{3}", layer, layerImage.Width, layerImage.Height, blendModeKey);
Debug.WriteLine("TransparencyProtected is {0}, Visible is {1}, Obsolete is {2} and Psd5OrLater is {3}",
layerInfo.TransparencyProtected, layerInfo.Visible, layerInfo.Obsolete, layerInfo.Psd5OrLater);
char[] byteArray = "dark".ToCharArray(); //Define Blend Mode Key
layerInfo.SetBlendModeKey(Encoding.ASCII.GetBytes(byteArray));
Debug.WriteLine("Loaded layer at index {0} with updated Blend mode key:{1}", layer, Encoding.ASCII.GetString(layerInfo.GetBlendModeKey()));
layerImage.Dispose();
}
else
Debug.WriteLine("No layers found in this PSD file");
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
Leadtools.Codecs Assembly
CompactFile(Stream,Stream,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method
CompactFile(Stream,Stream,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method
CompactFile(string,string,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method
CompactFile(string,string,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method