O popular aplicativo Photoshop da Adobe usa PSD (Photoshop Document) como um formato de arquivo de imagem nativo. É comumente usado para criar logotipos, folhetos e outras imagens em que o arquivo PSD contém várias camadas. Podemos proteger facilmente o design adicionando a marca d’água de texto ou imagem a um arquivo PSD programaticamente. Neste artigo, aprenderemos como adicionar uma marca d’água a um PSD em C#.
Este artigo deve abordar os seguintes tópicos:
- API C# do Photoshop para adicionar marca d’água ao PSD
- Adicione uma marca d’água de texto ao PSD
- Criar uma marca d’água diagonal em PSD
- Adicionar uma marca d’água de imagem ao PSD
API C# do Photoshop para adicionar marca d’água ao PSD
Para adicionar uma marca d’água de texto ou imagem em um arquivo PSD, usaremos a API Aspose.PSD for .NET. É uma API de manipulação de formato de arquivo Adobe Photoshop fácil de usar. Permite carregar e ler arquivos PSD e PSB em aplicativos .NET. A API nos permite atualizar as propriedades da camada, adicionar marcas d’água, realizar compactação, rotação, dimensionar ou renderizar PSD e vários outros formatos de arquivo suportados sem a necessidade de instalar o Adobe Photoshop.
A classe PsdImage da API permite carregar, editar e salvar arquivos PSD. A classe Graphics representa os gráficos na imagem. Temos o método DrawString(string, Font, Brush, RectangleF, StringFormat) desta classe que desenha a string de texto especificada no retângulo especificado com os objetos brush e font especificados. A classe Layer representa a camada PSD. O método DrawImage(Point, RasterImage) desta classe desenha a imagem na camada. Podemos salvar o PSD no local do arquivo especificado usando o método Save(string, ImageOptionsBase).
Por favor, faça o download da DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.PSD
Adicionar marca d’água de texto ao PSD usando C#
Podemos adicionar qualquer texto como marca d’água a um arquivo PSD seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, crie uma instância da classe Graphics.
- Em seguida, defina um objeto de classe Font para desenhar a largura da marca d’água.
- Em seguida, crie uma instância da classe SolidBrush com cor.
- Em seguida, especifique o alinhamento da string.
- Depois disso, chame o método DrawString().
- Finalmente, salve o arquivo de saída usando o método Save().
O exemplo de código a seguir mostra como adicionar uma marca d’água de texto a um arquivo PSD em C#.
// Este exemplo de código mostra como adicionar uma marca d'água de texto a um arquivo PSD
// Carregue um arquivo PSD como uma imagem e converta-o em PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Crie objetos gráficos para realizar operações de desenho.
Graphics graphics = new Graphics(psdImage);
// Crie uma fonte para desenhar a marca d'água.
Font font = new Font("Arial", 25.0f);
// Crie um pincel sólido com a cor alfa definida perto de 0 para usar o efeito de marca d'água.
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Especifique o alinhamento da string para colocar a marca d'água no centro da imagem.
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
// Desenhe marca d'água usando fonte, pincel parcialmente transparente e matriz de rotação no centro da imagem.
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf);
// Exporte a imagem para o formato de arquivo PNG.
psdImage.Save(@"C:\Files\AddWatermark_output.png", new PngOptions());
Também podemos salvar a saída como um arquivo PSD usando o seguinte exemplo de código:
psdImage.Save(@"C:\Files\AddWatermark_output.psd", new PsdOptions());
Criar marca d’água diagonal em PSD usando C#
Podemos adicionar uma marca d’água de texto diagonal a um arquivo PSD seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, crie uma instância da classe Graphics.
- Em seguida, defina um objeto de classe Font para desenhar a largura da marca d’água.
- Enquanto isso, crie uma instância da classe SolidBrush com color.
- Em seguida, especifique a matriz de transformação para girar a marca d’água.
- Mais tarde, especifique o alinhamento da string.
- Depois disso, chame o método DrawString().
- Finalmente, salve o arquivo de saída usando o método Save().
O exemplo de código a seguir mostra como adicionar uma marca d’água de texto diagonal a um arquivo PSD em C#.
// Este exemplo de código mostra como adicionar uma marca d'água de texto diagonal a um arquivo PSD
// Carregue um arquivo PSD como uma imagem e converta-o em PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Criar objeto gráfico para realizar operações de desenho
Graphics graphics = new Graphics(psdImage);
// Criar fonte para desenhar marca d'água com
Font font = new Font("Arial", 25.0f);
// Crie um pincel sólido com alfa de cor definido próximo a 0 para usar o efeito de marca d'água
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Especifique a matriz de transformação para girar a marca d'água
graphics.Transform = new Matrix();
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2));
// Especifique o alinhamento da string para colocar a marca d'água no centro da imagem
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
// Desenhe marca d'água usando fonte, pincel parcialmente transparente no centro da imagem
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf);
// Exporte a imagem para o formato de arquivo PNG
psdImage.Save(@"C:\Files\AddDiagnolWatermark_output.png", new PngOptions());
Adicionar marca d’água de imagem ao PSD usando C#
Também podemos adicionar uma imagem como marca d’água a um arquivo PSD seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PSD como PsdImage usando a classe Image.
- Em seguida, crie uma instância da classe Layer.
- Em seguida, defina a altura, largura e opacidade da camada.
- Em seguida, chame o método AddLayer() para adicionar a camada ao PSD.
- Depois disso, carregue uma imagem de marca d’água em uma camada.
- Em seguida, adicione uma marca d’água de imagem à camada.
- Depois disso, chame o método DrawImage(). Ele usa a camada de imagem de localização e marca d’água como argumentos.
- Finalmente, salve o arquivo de saída usando o método Save().
O exemplo de código a seguir mostra como adicionar uma marca d’água de imagem a um arquivo PSD em C#.
// Este exemplo de código mostra como adicionar uma marca d'água de imagem a um arquivo PSD
// Carregar um arquivo PSD no objeto PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Adicionar uma nova camada de marca d'água
var baseLayer = new Layer();
baseLayer.Top = 200;
baseLayer.Bottom = 600;
baseLayer.Right = 600;
baseLayer.Opacity = 50;
// Adicionar camada ao arquivo PSD
psdImage.AddLayer(baseLayer);
// Carregar uma imagem de marca d'água em uma camada
FileStream ImageWatermarkFile = new FileStream(@"C:\Files\aspose_logo.png", FileMode.Open);
Layer ImageWatermarkLayer = new Layer(ImageWatermarkFile);
// Adicionar marca d'água da imagem à camada base
baseLayer.DrawImage(new Point(0, 200), ImageWatermarkLayer);
// Salvar arquivo PSD com marca d'água final
psdImage.Save(@"C:\Files\ImageWatermarkedPSD.png", new PngOptions());
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:
- adicione uma nova camada a uma imagem PSD;
- adicionar texto ou imagem de marca d’água ao PSD;
- salve PSD como uma imagem PNG ou PSD usando C#.
Além de adicionar uma marca d’água ao PSD em C#, você pode aprender mais sobre o Aspose.PSD para .NET usando documentação e explorar diferentes recursos suportados pela API. Em caso de qualquer ambiguidade, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.