Adicionar novas camadas em PSD usando C#

PSD (Photoshop Document) é um formato de arquivo de imagem nativo usado pelo popular aplicativo Photoshop da Adobe. É comumente usado para criar logotipos, folhetos e outras imagens em que o arquivo PSD contém várias camadas. Em certos casos, podemos precisar manipular os arquivos PSD programaticamente. Neste artigo, aprenderemos como adicionar uma nova camada em um PSD usando C#.

Os seguintes tópicos serão abordados neste artigo:

  1. API C# para adicionar nova camada em PSD
  2. Adicionar uma nova camada ao PSD
  3. Adicionar uma nova camada de texto ao PSD
  4. Criar uma camada da imagem em PSD

API C # para adicionar nova camada em PSD

Para criar uma nova camada em um arquivo PSD, usaremos a API Aspose.PSD for .NET. Ele suporta a criação, edição ou manipulação de PSD e vários outros formatos de arquivo suportados.

A classe PsdImage da API permite carregar, editar e salvar arquivos PSD. O método AddRegularLayer() desta classe adiciona uma nova camada regular. Considerando que, o método AddTextLayer(string, Rectangle) adiciona uma nova camada de texto ao PSD. Essa classe também fornece o método Save(string) que salva o PSD no local do arquivo especificado.

Por favor, faça o download da DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.PSD

Adicionar nova camada ao PSD usando C#

Podemos adicionar uma nova camada a um arquivo PSD seguindo as etapas abaixo:

  1. Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
  2. Em seguida, prepare um objeto para adicionar, como Rectangle.
  3. Em seguida, chame o método AddRegularLayer().
  4. Opcionalmente, defina a posição da camada, como Superior, Esquerda, Direita e Inferior.
  5. Depois disso, atribua o objeto à camada usando o método SaveArgb32Pixels().
  6. Finalmente, salve o arquivo de saída usando o método Save().

O exemplo de código a seguir mostra como adicionar uma nova camada a um arquivo PSD em C#.

// Este exemplo de código demonstra como criar novas camadas no arquivo de imagem PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";

// Carregar um PSD existente
var im = (PsdImage)Image.Load(sourceFileName);

// Preparando dois arrays int
var data1 = new int[2500];
var data2 = new int[2500];

// Definir retâ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;
}

// Adicionar camada 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);

// Adicionar camada 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);

// Salvar PSD
im.Save(exportPath, new PsdOptions());
Adicionar-Nova-Camada-ao-PSD-Programaticamente-usando-CSharp

Adicionar nova camada ao PSD programaticamente usando C #

Adicionar nova camada de texto ao PSD usando C#

Podemos adicionar uma nova camada de texto a um arquivo PSD seguindo as etapas abaixo:

  1. Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
  2. Em seguida, defina um Retângulo.
  3. Em seguida, chame o método AddTexLayer(). Ele recebe entrada de texto e um objeto retângulo como argumentos.
  4. Depois disso, defina a posição da camada, como Superior, Esquerda, Direita e Inferior.
  5. Finalmente, salve o arquivo de saída usando o método Save().

O exemplo de código a seguir mostra como adicionar uma nova camada de texto a um arquivo PSD em C#.

// Este exemplo de código demonstra como criar novas camadas no arquivo de imagem PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";

// Carregar um PSD existente
var im = (PsdImage)Image.Load(sourceFileName);

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

// Salvar PSD
im.Save(exportPath, new PsdOptions());
Adicionar-Novo-Texto-Camada-ao-PSD-usando-CSharp

Adicionar nova camada de texto ao PSD programaticamente usando C #

Criar nova camada de imagem em PSD usando C#

Também podemos adicionar uma nova camada de uma imagem PNG ou JPG a um arquivo PSD seguindo as etapas abaixo:

  1. Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
  2. Em seguida, abra o arquivo de imagem PNG em um fluxo.
  3. Em seguida, crie uma instância da classe Layer com o objeto stream.
  4. Depois disso, chame o método AddLayer(). Recebe o objeto Layer como argumento.
  5. Finalmente, salve o arquivo de saída usando o método Save().

O exemplo de código a seguir mostra como adicionar uma nova camada de uma imagem PNG a um arquivo PSD em C#.

// Este exemplo de código demonstra como criar uma nova camada de uma imagem PNG em um arquivo de imagem PSD.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";

// Criar uma nova imagem PSD
var image = new PsdImage(200, 200);

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

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

// Salvar PSD
image.Save(outputFilePath);
Criar-Nova-Camada-da-Imagem-em-PSD-usando-CSharp

Criar nova camada de imagem em PSD usando C #

Obtenha Licença Temporária Gratuita

Você pode obter uma licença temporária gratuita para experimentar o Aspose.PSD para .NET sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • crie uma nova imagem PSD;
  • crie uma nova camada regular e uma camada de texto em uma imagem PSD;
  • insira uma imagem PNG ou JPG como uma nova camada em PSD usando C#.

Além disso, você pode aprender mais sobre o Aspose.PSD para .NET usando a documentação e explorar diferentes recursos suportados pela API. Em caso de qualquer ambiguidade, não hesite em contactar-nos no nosso fórum.

Veja também