←Select platform

LoadPsdLayer Method

Summary

Loads the specified layer from the specified PSD file.

Syntax

C#
VB
WinRT C#
C++
Public Function LoadPsdLayer( _ 
   ByVal fileName As String, _ 
   ByVal bitsPerPixel As Integer, _ 
   ByVal order As Leadtools.Codecs.CodecsLoadByteOrder, _ 
   ByVal layer As Integer, _ 
   ByVal layerInfo As Leadtools.Codecs.CodecsPsdLayerInfo _ 
) As Leadtools.RasterImage 
 function Leadtools.Codecs.RasterCodecs.LoadPsdLayer(  
   fileName , 
   bitsPerPixel , 
   order , 
   layer , 
   layerInfo  
) 

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.

Remarks

Use this method to load PSD files only.

This method works similarly to a normal Load or LoadAsync methods, except that it loads only a layer from a PSD file. It loads the layer specified in layer.

Before calling this method, you may need to get or set file information, such as the number of layers on the file. Refer to CodecsPsdImageInfo.

The number of layers in a file is indicated in CodecsPsdImageInfo.Layers. If this number is 0, the file does not contains any layers and this method should not be called.

Example

This example will create and save a PSD with layers before re-loading the first layer back

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
 
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); 
 
      string blendModeKey = Encoding.ASCII.GetString(layerInfo.GetBlendModeKey()); 
 
      Console.WriteLine("Loaded layer at index {0}, size is {1} by {2}, Blend mode key:{3}", layer, layerImage.Width, layerImage.Height, blendModeKey); 
      Console.WriteLine("TransparencyProtected is {0}, Visible is {1}, Obsolete is {2} and Psd5OrLater is {3}", 
         layerInfo.TransparencyProtected, layerInfo.Visible, layerInfo.Obsolete, layerInfo.Psd5OrLater); 
      layerImage.Dispose(); 
   } 
   else 
      Console.WriteLine("No layers found in this PSD file"); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Public Sub PsdLayersExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   Dim layerFileNames As String() = 
   { 
      Path.Combine(LEAD_VARS.ImagesDir, "Sample1.cmp"), 
      Path.Combine(LEAD_VARS.ImagesDir, "Sample2.cmp"), 
      Path.Combine(LEAD_VARS.ImagesDir, "Sample3.cmp") 
   } 
 
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") 
   Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.psd") 
 
   ' Load the layer images (as pages in 1 image) 
   Dim layersImage As RasterImage = Nothing 
   For Each layerFileName As String In layerFileNames 
      Dim layerImage As RasterImage = codecs.Load(layerFileName) 
      If layersImage Is Nothing Then 
         layersImage = layerImage 
      Else 
         layersImage.AddPage(layerImage) 
      End If 
   Next layerFileName 
 
   ' Load the image that is made up of all the layers 
   Dim image As RasterImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.BgrOrGray, 1, 1) 
 
   ' Save this image and all the layers 
   codecs.SavePsdWithLayers(image, destFileName, 0, layersImage, Nothing) 
   image.Dispose() 
   layersImage.Dispose() 
 
   Dim imageInfo As CodecsImageInfo = codecs.GetInformation(destFileName, False) 
   If imageInfo.Psd.Layers > 0 Then 
      Dim layer As Integer = 0 
      Dim layerInfo As CodecsPsdLayerInfo = New CodecsPsdLayerInfo() 
      Dim layerImage As RasterImage = codecs.LoadPsdLayer(destFileName, 0, CodecsLoadByteOrder.BgrOrGray, layer, layerInfo) 
 
      Dim blendModeKey As String = Encoding.ASCII.GetString(layerInfo.GetBlendModeKey()) 
 
      Console.WriteLine("Loaded layer at index {0}, size is {1} by {2}, Blend mode key:{3}", layer, layerImage.Width, layerImage.Height, blendModeKey) 
      Console.WriteLine("TransparencyProtected is {0}, Visible is {1}, Obsolete is {2} and Psd5OrLater is {3}", 
     layerInfo.TransparencyProtected, layerInfo.Visible, layerInfo.Obsolete, layerInfo.Psd5OrLater) 
      layerImage.Dispose() 
   Else 
      Console.WriteLine("No layers found in this PSD file") 
   End If 
 
   ' Clean up 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly