Agregar nuevas capas en PSD usando C#

PSD (Documento de Photoshop) es un formato de archivo de imagen nativo utilizado por la popular aplicación Photoshop de Adobe. Se usa comúnmente para crear logotipos, folletos y otras imágenes en las que el archivo PSD contiene varias capas. En ciertos casos, es posible que necesitemos manipular los archivos PSD mediante programación. En este artículo, aprenderemos cómo agregar una nueva capa en un PSD usando C#.

En este artículo se tratarán los siguientes temas:

  1. API de C# para agregar una nueva capa en PSD
  2. Agregar una nueva capa a PSD
  3. Agregar una nueva capa de texto a PSD
  4. Crear una capa a partir de una imagen en PSD

API de C# para agregar una nueva capa en PSD

Para crear una nueva capa en un archivo PSD, usaremos la API Aspose.PSD para .NET. Admite la creación, edición o manipulación de PSD y varios otros formatos de archivo admitidos.

La clase PsdImage de la API permite cargar, editar y guardar archivos PSD. El método AddRegularLayer() de esta clase agrega una nueva capa regular. Mientras que el método AddTextLayer(string, Rectangle) agrega una nueva capa de texto al PSD. Esta clase también proporciona el método Save(string) que guarda el PSD en la ubicación de archivo especificada.

Descargue la DLL de la API o instálela mediante NuGet.

PM> Install-Package Aspose.PSD

Agregar nueva capa a PSD usando C#

Podemos agregar una nueva capa a un archivo PSD siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
  2. A continuación, prepare un objeto para agregar, como Rectángulo.
  3. Luego, llama al método AddRegularLayer().
  4. Opcionalmente, establezca la posición de la capa como Superior, Izquierda, Derecha e Inferior.
  5. Después de eso, asigne el objeto a la capa usando el método SaveArgb32Pixels().
  6. Finalmente, guarde el archivo de salida usando el método Save().

El siguiente ejemplo de código muestra cómo agregar una nueva capa a un archivo PSD en C#.

// Este ejemplo de código demuestra cómo crear nuevas capas en un archivo de imagen PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";

// Cargar un PSD existente
var im = (PsdImage)Image.Load(sourceFileName);

// Preparando dos arreglos int
var data1 = new int[2500];
var data2 = new int[2500];

// Definir rectángulos
var rect1 = new Rectangle(0, 0, 50, 50);
var rect2 = new Rectangle(0, 0, 100, 25);

for (int i = 0; i < 2500; i++)
{
    data1[i] = -10000000;
    data2[i] = -10000000;
}

// Añadir capa 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);

// Añadir capa 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);

// Guardar PSD
im.Save(exportPath, new PsdOptions());
Add-New-Layer-to-PSD-Programmatically-using-CSharp

Agregue una nueva capa a PSD mediante programación usando C#

Agregue una nueva capa de texto a PSD usando C#

Podemos agregar una nueva capa de texto a un archivo PSD siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
  2. A continuación, defina un Rectángulo.
  3. Luego, llama al método AddTexLayer(). Toma la entrada de texto y un objeto de rectángulo como argumentos.
  4. Después de eso, establezca la posición de la capa como Superior, Izquierda, Derecha e Inferior.
  5. Finalmente, guarde el archivo de salida usando el método Save().

El siguiente ejemplo de código muestra cómo agregar una nueva capa de texto a un archivo PSD en C#.

// Este ejemplo de código demuestra cómo crear nuevas capas en un archivo de imagen PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";

// Cargar un PSD existente
var im = (PsdImage)Image.Load(sourceFileName);

// Agregar una capa de texto
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;

// Guardar PSD
im.Save(exportPath, new PsdOptions());
Agregar-nueva-capa-de-texto-a-PSD-usando-CSharp

Agregue una nueva capa de texto a PSD mediante programación usando C#

Cree una nueva capa a partir de una imagen en PSD usando C#

También podemos agregar una nueva capa de una imagen PNG o JPG a un archivo PSD siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
  2. A continuación, abra el archivo de imagen PNG en una secuencia.
  3. Luego, cree una instancia de la clase Capa con el objeto de flujo.
  4. Después de eso, llama al método AddLayer(). Toma el objeto Layer como argumento.
  5. Finalmente, guarde el archivo de salida usando el método Save().

El siguiente ejemplo de código muestra cómo agregar una nueva capa desde una imagen PNG a un archivo PSD en C#.

// Este ejemplo de código demuestra cómo crear una nueva capa a partir de una imagen PNG en un archivo de imagen PSD.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";

// Crear una nueva imagen PSD
var image = new PsdImage(200, 200);

// Cargar una imagen PNG
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);

Layer layer = null;
try
{
    // Agregar capa a PSD
    layer = new Layer(stream);
    image.AddLayer(layer);
}
catch (Exception e)
{
    if (layer != null)
    {
        layer.Dispose();
    }
    throw e;
}

// Guardar PSD
image.Save(outputFilePath);
Crear-Nueva-Capa-desde-Imagen-en-PSD-usando-CSharp

Cree una nueva capa a partir de una imagen en PSD usando C#

Obtenga una licencia temporal gratuita

Puede obtener una licencia temporal gratuita para probar Aspose.PSD para .NET sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • crear una nueva imagen PSD;
  • crear una nueva capa regular y una capa de texto en una imagen PSD;
  • inserte una imagen PNG o JPG como una nueva capa en PSD usando C#.

Además, puede obtener más información sobre Aspose.PSD para .NET utilizando la documentación y explorar las diferentes funciones compatibles con la API. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro.

Ver también