Adicionar uma Marca d'água a uma Imagem
Adicionar uma Marca d’água a uma Imagem
Este documento explica como adicionar uma marca d’água a uma imagem usando Aspose.PSD. Adicionar uma marca d’água a uma imagem é um requisito comum para aplicações de processamento de imagem. Este exemplo utiliza a classe Graphics para desenhar uma string na superfície da imagem.
Adicionando uma Marca d’água
Para demonstrar a operação, vamos carregar uma imagem BMP do disco e desenhar uma string como marca d’água na superfície da imagem usando o método DrawString da classe Graphics. Vamos salvar a imagem no formato PNG usando a classe PngOptions. Abaixo está um exemplo de código que demonstra como adicionar uma marca d’água a uma imagem. O código de exemplo foi dividido em partes para facilitar o acompanhamento. Passo a passo, os exemplos mostram como:
- Carregar uma imagem.
- Criar e inicializar um objeto Graphics.
- Criar e inicializar objetos Font e SolidBrush.
- Desenhar uma string como marca d’água usando o método DrawString da classe Graphics.
- Salvar imagem em PNG.
O trecho de código a seguir mostra como adicionar uma marca d’água na imagem.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Load a PSD file as an image and cast it into PsdImage | |
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd")) | |
{ | |
// Create graphics object to perform draw operations. | |
Graphics graphics = new Graphics(psdImage); | |
// Create font to draw watermark with. | |
Font font = new Font("Arial", 20.0f); | |
// Create a solid brush with color alpha set near to 0 to use watermarking effect. | |
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128))) | |
{ | |
// Specify string alignment to put watermark at the image center. | |
StringFormat sf = new StringFormat(); | |
sf.Alignment = StringAlignment.Center; | |
sf.LineAlignment = StringAlignment.Center; | |
// Draw watermark using font, partly-transparent brush and rotation matrix at the image center. | |
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf); | |
} | |
// Export the image into PNG file format. | |
psdImage.Save(dataDir + "AddWatermark_output.png", new PngOptions()); | |
} |
Adicionando uma Marca d’água Diagonal
Adicionar uma marca d’água diagonal a uma imagem é semelhante a adicionar uma marca d’água horizontal, conforme discutido acima, com algumas diferenças. Para demonstrar a operação, vamos carregar uma imagem JPG do disco, adicionar transformações usando um objeto da classe Matrix e desenhar uma string como marca d’água na superfície da imagem usando o método DrawString da classe Graphics. Abaixo está um exemplo de código que demonstra como adicionar uma marca d’água diagonal a uma imagem. O código de exemplo foi dividido em partes para facilitar o acompanhamento. Passo a passo, os exemplos mostram como:
- Carregar uma imagem.
- Criar e inicializar um objeto Graphics.
- Criar e inicializar objetos Font e SolidBrush.
- Obter o tamanho da imagem em um objeto SizeF.
- Criar uma instância da classe Matrix e realizar uma transformação composta.
- Atribuir a transformação ao objeto Graphics.
- Criar e inicializar um objeto StringFormat.
- Desenhar uma string como marca d’água usando o método DrawString da classe Graphics.
- Salvar a imagem resultante.
O trecho de código a seguir mostra como adicionar uma marca d’água diagonal.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Load a PSD file as an image and cast it into PsdImage | |
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd")) | |
{ | |
// Create graphics object to perform draw operations. | |
Graphics graphics = new Graphics(psdImage); | |
// Create font to draw watermark with. | |
Font font = new Font("Arial", 20.0f); | |
// Create a solid brush with color alpha set near to 0 to use watermarking effect. | |
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128))) | |
{ | |
// specify transform matrix to rotate watermark. | |
graphics.Transform = new Matrix(); | |
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2)); | |
// Specify string alignment to put watermark at the image center. | |
StringFormat sf = new StringFormat(); | |
sf.Alignment = StringAlignment.Center; | |
// Draw watermark using font, partly-transparent brush at the image center. | |
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf); | |
} | |
// Export the image into PNG file format. | |
psdImage.Save(dataDir + "AddDiagnolWatermark_output.png", new PngOptions()); | |
} |