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:
- API C# para adicionar nova camada em PSD
- Adicionar uma nova camada ao PSD
- Adicionar uma nova camada de texto ao PSD
- 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:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, prepare um objeto para adicionar, como Rectangle.
- Em seguida, chame o método AddRegularLayer().
- Opcionalmente, defina a posição da camada, como Superior, Esquerda, Direita e Inferior.
- Depois disso, atribua o objeto à camada usando o método SaveArgb32Pixels().
- 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 de texto ao PSD usando C#
Podemos adicionar uma nova camada de texto a um arquivo PSD seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, defina um Retângulo.
- Em seguida, chame o método AddTexLayer(). Ele recebe entrada de texto e um objeto retângulo como argumentos.
- Depois disso, defina a posição da camada, como Superior, Esquerda, Direita e Inferior.
- 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());
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:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, abra o arquivo de imagem PNG em um fluxo.
- Em seguida, crie uma instância da classe Layer com o objeto stream.
- Depois disso, chame o método AddLayer(). Recebe o objeto Layer como argumento.
- 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);
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.