public void SavePsdWithLayers(RasterImage image,string fileName,int bitsPerPixel,RasterImage layerImages,CodecsPsdLayerInfo[] layerInfos)
public:void SavePsdWithLayers(RasterImage^ image,String^ fileName,int bitsPerPixel,RasterImage^ layerImages,array<CodecsPsdLayerInfo^>^ layerInfos)
def SavePsdWithLayers(self,image,fileName,bitsPerPixel,layerImages,] layerInfos):
image
The image to save.
fileName
The output file name.
bitsPerPixel
Resulting file's pixel depth. For color images this can be 24 or 32. For grayscale images this can be 8.
layerImages
An RasterImage object that contains layers (in each page) to save in the output file. The layers should have the same bits per pixel as the file. Every page in the image will be saved as a layer. The first page in the image will be interpreted as the first layer. The pages in the image must have the same bits per pixel as specified in bitsPerPixel.
layerInfos
An optional array of CodecsPsdLayerInfo objects. If this is a null reference , then each layer will start at (0, 0) and will have the same size as the image. If this is not a null reference, then the layer information for each layer in layerInfos will be stored here.The number of CodecsPsdLayerInfo objects must be the same as the number of pages in layerImages.
Use this method to save PSD files with layers.
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;elselayersImage.AddPage(layerImage);}// Load the image that is made up of all the layersRasterImage image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.BgrOrGray, 1, 1);// Save this image and all the layerscodecs.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 KeylayerInfo.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();}elseDebug.WriteLine("No layers found in this PSD file");// Clean upcodecs.Dispose();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
