As marcas d’água nas imagens geralmente são usadas para reivindicar a propriedade do conteúdo. Por outro lado, as imagens são marcadas com marca d’água para evitar uso não autorizado ou falsificação. Em vários casos, pode ser necessário automatizar o recurso de marca d’água em seus aplicativos da Web ou da área de trabalho. Para esses cenários, este artigo aborda como adicionar marca d’água a imagens programaticamente usando C#. Isso também pode ser útil quando você precisa marcar um lote de imagens com marca d’água de uma só vez. Então vamos começar.
- API C# para adicionar marca d’água a imagens
- Adicionar marca d’água a uma imagem em C#
- Adicionar marca d’água diagonal a imagens em C#
- Obtenha licença de API gratuita
API C# para adicionar marca d’água a imagens
Para adicionar marcas d’água às imagens, usaremos Aspose.Imaging for .NET. É uma poderosa API de processamento de imagem que suporta uma ampla variedade de formatos de imagem. Além disso, a API facilita a manipulação das imagens. Você pode baixar binários da API ou instalá-lo usando NuGet.
PM> Install-Package Aspose.Imaging
Adicionar marca d’água a uma imagem em C#
A seguir estão as etapas para adicionar uma marca d’água a uma imagem usando C#.
- Carregue a imagem usando a classe Image.
- Crie uma instância da classe Graphics e inicialize-a com o objeto Image.
- Defina a família, o tamanho e a face da fonte usando a classe Font.
- Crie uma instância da classe SolidBrush e defina suas propriedades, como cor, etc.
- Instancie a classe StringFormat para definir o alinhamento do texto.
- Adicione marca d’água à imagem usando o método Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Salve a imagem usando o método Image.Save(String).
O exemplo de código a seguir mostra como adicionar marca d’água a uma imagem em C#.
// Carregar uma imagem PNG existente
using (Image image = Image.Load("image.png"))
{
// Declare um objeto String com texto de marca d'água
string theString = "This is watermark";
// Crie e inicialize uma instância da classe Graphics e inicialize um objeto de SizeF para armazenar a imagem Size
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Cria uma instância de Font, inicializa com Font Face, Size e Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Crie uma instância do SolidBrush e defina suas várias propriedades
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Inicialize um objeto da classe StringFormat e defina suas várias propriedades
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Desenhe a string na saída Image Save to disk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
Adicionar marca d’água diagonal a imagens em C#
Em vários casos, as marcas d’água são aplicadas às imagens na diagonal. Para isso, o Aspose.Imaging for .NET permite transformar o texto da marca d’água em um determinado ângulo. A seguir estão as etapas para adicionar uma marca d’água diagonal a uma imagem.
- Carregue a imagem usando a classe Image.
- Crie uma instância da classe Graphics e inicialize-a com o objeto Image.
- Defina a família, o tamanho e a face da fonte usando a classe Font.
- Crie uma instância da classe SolidBrush e defina suas propriedades, como cor, etc.
- Instancie a classe StringFormat para definir o alinhamento do texto.
- Crie uma instância da classe Matrix e defina o ângulo de transformação.
- Atribua o objeto Matrix à propriedade Graphics.Transform.
- Adicione marca d’água usando o método Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Salve a imagem usando o método Image.Save(String).
O exemplo de código a seguir mostra como adicionar uma marca d’água diagonal a imagens usando C#.
// Carregar uma imagem PNG existente
using (Image image = Image.Load("Image.png"))
{
// Declare um objeto String com texto de marca d'água
string theString = "45 Degree Rotated Text";
// Crie e inicialize uma instância da classe Graphics e inicialize um objeto de SizeF para armazenar a imagem Size
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Cria uma instância de Font, inicializa com Font Face, Size e Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Crie uma instância do SolidBrush e defina suas várias propriedades
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Inicialize um objeto da classe StringFormat e defina suas várias propriedades
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Crie um objeto da classe Matrix para transformação
Matrix matrix = new Matrix();
// Primeiro uma translação depois uma rotação
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// Defina a transformação por meio de Matrix
graphics.Transform = matrix;
// Desenhe a string na saída Image Save to disk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
Obtenha uma licença de API gratuita
Caso queira experimentar a API sem limitações de avaliação, você pode obter uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como adicionar marca d’água a imagens usando C#. Além disso, você viu como transformar o texto da marca d’água em um ângulo específico. Você pode explorar mais sobre a API de processamento de imagem C# usando documentação. Caso você tenha alguma dúvida ou pergunta, entre em contato conosco através do nosso fórum.