LEADTOOLS Image File Support (Leadtools.Codecs assembly)

LoadPsdChannelAsync Method

Show in webframe
Example 







The input PSD stream.

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.
The desired color order.
Index of the channel to load. This index is zero-based. Pass 0 to load the first channel, 1 to load the second channel, etc.
a CodecsPsdChannelInfo object to be updated with information about the loaded channel. Pass a null reference (Nothing in Visual Basic) for this parameter if channel information is not needed.
Loads the specified channel from the specified PSD file.
Syntax
public IAsyncOperation<RasterImage> LoadPsdChannelAsync( 
   ILeadStream stream,
   int bitsPerPixel,
   CodecsLoadByteOrder order,
   int channelIndex,
   CodecsPsdChannelInfo channelInfo
)
'Declaration
 
Public Function LoadPsdChannelAsync( _
   ByVal stream As ILeadStream, _
   ByVal bitsPerPixel As Integer, _
   ByVal order As CodecsLoadByteOrder, _
   ByVal channelIndex As Integer, _
   ByVal channelInfo As CodecsPsdChannelInfo _
) As IAsyncOperation(Of RasterImage)
'Usage
 
Dim instance As RasterCodecs
Dim stream As ILeadStream
Dim bitsPerPixel As Integer
Dim order As CodecsLoadByteOrder
Dim channelIndex As Integer
Dim channelInfo As CodecsPsdChannelInfo
Dim value As IAsyncOperation(Of RasterImage)
 
value = instance.LoadPsdChannelAsync(stream, bitsPerPixel, order, channelIndex, channelInfo)
public IAsyncOperation<RasterImage> LoadPsdChannelAsync( 
   ILeadStream stream,
   int bitsPerPixel,
   CodecsLoadByteOrder order,
   int channelIndex,
   CodecsPsdChannelInfo channelInfo
)

            

            
 function Leadtools.Codecs.RasterCodecs.LoadPsdChannelAsync( 
   stream ,
   bitsPerPixel ,
   order ,
   channelIndex ,
   channelInfo 
)
public:
IAsyncOperation<RasterImage^>^ LoadPsdChannelAsync( 
   ILeadStream^ stream,
   int bitsPerPixel,
   CodecsLoadByteOrder order,
   int channelIndex,
   CodecsPsdChannelInfo^ channelInfo
) 

Parameters

stream
The input PSD stream.
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.
channelIndex
Index of the channel to load. This index is zero-based. Pass 0 to load the first channel, 1 to load the second channel, etc.
channelInfo
a CodecsPsdChannelInfo object to be updated with information about the loaded channel. Pass a null reference (Nothing in Visual Basic) for this parameter if channel information is not needed.

Return Value

When this method completes, it returns the Leadtools.RasterImage object that this method loads.
Remarks

Use this method to load PSD files only.

This method works similarly to the normal Load(String) or LoadAsync(String,LeadRect,Int32,CodecsLoadByteOrder,Int32,Int32,Object) methods, except that it loads only a channel from a PSD file. It loads the channel specified in the channelIndex.

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

The number of channels in a file is indicated by CodecsPsdImageInfo.Channels. If this number is 0, the file does not contain any channels and this method should not be called.

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing

Public Sub LoadPsdChannels()
   Dim codecs As New RasterCodecs()

   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Sunflower.psd")

   Dim imageInfo As CodecsImageInfo = codecs.GetInformation(srcFileName, False)
   For iCount As Integer = 0 To imageInfo.Psd.Channels - 1
      Dim ChannelInfo As New CodecsPsdChannelInfo()
      Dim ChannelImage As RasterImage = codecs.LoadPsdChannel(srcFileName, 0, CodecsLoadByteOrder.Rgb, iCount, ChannelInfo)

      Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Channel_")
      destFileName = destFileName & iCount & ".Bmp"

      codecs.Save(ChannelImage, destFileName, RasterImageFormat.Bmp, ChannelImage.BitsPerPixel)

      ChannelImage.Dispose()
   Next
   ' Clean up
   codecs.Dispose()
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

public void LoadPsdChannels()
{
   RasterCodecs codecs = new RasterCodecs();

   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Sunflower.psd");

   CodecsImageInfo imageInfo = codecs.GetInformation(srcFileName, false);
   for (int iCount = 0; iCount < imageInfo.Psd.Channels; iCount++)
   {
      CodecsPsdChannelInfo ChannelInfo = new CodecsPsdChannelInfo();
      RasterImage ChannelImage = codecs.LoadPsdChannel(srcFileName, 0, CodecsLoadByteOrder.Rgb, iCount, ChannelInfo);

      string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Channel_");
      destFileName = destFileName + iCount + ".Bmp";

      codecs.Save(ChannelImage, destFileName, RasterImageFormat.Bmp, ChannelImage.BitsPerPixel);

      ChannelImage.Dispose();
   }
   // Clean up 
   codecs.Dispose();
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
RasterCodecsExamples.prototype.LoadPsdChannels = function () {
   Tools.SetLicense();
   with (Leadtools) {
      with (Leadtools.Codecs) {
         var codecs = new RasterCodecs();

         var srcFileName = "Assets\\Sunflower.psd";
         var loadFile;
         return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFileX) {
            loadFile = loadFileX;
            return codecs.getInformationAsync(LeadStreamFactory.create(loadFile), false, 1)
         })
            .then(function (imageInfo) {
               for (var iCount = 0; iCount < imageInfo.psd.Channels; iCount++) {
                  var ChannelImage;
                  var ChannelInfo = new CodecsPsdChannelInfo();
                  var async = codecs.loadPsdChannelAsync(LeadStreamFactory.create(loadFile), 0, CodecsLoadByteOrder.rgb, iCount, ChannelInfo);
                  return WinJS.Promise.join(async).then(function (channelImage) {
                     ChannelImage = channelImage;
                     var destFileName = "Channel_";
                     destFileName = destFileName + iCount + ".Bmp";

                     return Tools.AppLocalFolder().createFileAsync(destFileName)
                  })
                  .then(function (saveFile) {
                     return codecs.saveAsync(ChannelImage, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, ChannelImage.BitsPerPixel)
                  })
                  .then(function () {

                     ChannelImage.close();
                  });
               }
            }).then(function () {
               // Clean up 
               codecs.close();
            });
      }
   }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

      
public async Task LoadPsdChannels()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Sunflower.psd";

   IStorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   CodecsImageInfo imageInfo = await codecs.GetInformationAsync(LeadStreamFactory.Create(loadFile), false, 1);
   for (int iCount = 0; iCount < imageInfo.Psd.Channels; iCount++)
   {
      CodecsPsdChannelInfo ChannelInfo = new CodecsPsdChannelInfo();
      RasterImage ChannelImage = await codecs.LoadPsdChannelAsync(LeadStreamFactory.Create(loadFile), 0, CodecsLoadByteOrder.Rgb, iCount, ChannelInfo);

      string destFileName = "Channel_";
      destFileName = destFileName + iCount + ".Bmp";

      IStorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);

      await codecs.SaveAsync(ChannelImage, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, ChannelImage.BitsPerPixel);

      ChannelImage.Dispose();
   }
   // Clean up 
   codecs.Dispose();
}
Requirements

Target Platforms

See Also

Reference

RasterCodecs Class
RasterCodecs Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.