desenhar-texto-imagem-csharp

Vemos ou criamos muitas imagens para obter informações visuais. Às vezes, você precisa adicionar ou desenhar texto em uma imagem de forma que ninguém mais possa modificar esse texto. A marca d’água da imagem é um dos exemplos mais comuns. Da mesma forma, rotular ou revisar imagens também pode exigir texto de desenho. Vamos explorar os usos adicionais de desenhar texto em imagens:

Adicionar, inserir ou desenhar texto formatado na imagem – instalação da API C#

Aspose.Drawing for .NET API é uma biblioteca de gráficos 2D que é compatível com o pacote System.Drawing. Ele suporta a renderização de retângulos, curvas, linhas, texto e outros gráficos nas imagens. Não depende de nenhuma biblioteca de terceiros, portanto, pode ser usado em qualquer ambiente. Por exemplo, ele também pode ser usado para renderizar gráficos no Linux ou no Azure Functions V2, onde a biblioteca System.Drawing não tem suporte. Você pode instalar o Aspose.Drawing para .NET API baixando-o da seção Downloads, ou através do seguinte comando de instalação:

PM> Install-Package Aspose.Drawing

Desenhar texto como marca d’água em imagem existente programaticamente usando C#

A marca d’água de texto na imagem geralmente é usada para mostrar a propriedade, afiliação ou a finalidade da imagem. Você pode adicionar ou desenhar texto como marca d’água em uma imagem existente com as seguintes etapas:

  1. Carregar imagem de entrada existente
  2. Inicialize o objeto de classe Graphics
  3. Definir formatação de texto e texto
  4. Desenhar texto
  5. Salvar imagem de saída

O código a seguir mostra como desenhar texto como marca d’água em uma imagem existente programaticamente usando C#:

// Carregar imagem de entrada existente
Bitmap bitmap = new Bitmap(dataDir + @"Test.png");

// Inicializar o objeto da classe Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
Brush brush = new SolidBrush(Color.FromKnownColor(KnownColor.Black));

// Declare pincel ao especificar a cor
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 1);

// Definir fonte de texto
Font arial = new Font("Arial", 20, FontStyle.Regular);

// Definir texto
string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sapien tellus, mattis et condimentum eget, commodo ut ipsum. Maecenas elit sapien, tempus sit amet mauris sit amet, hendrerit laoreet nisi. Nulla facilisi. Sed commodo, mauris eget porta commodo, nunc tellus volutpat mi, eu auctor diam libero vel neque. Vestibulum nec mattis dui, nec molestie nisl. Etiam in magna felis. Praesent non nulla tortor. Integer nec convallis purus. Fusce vitae mollis mauris. Cras efficitur dui at mi viverra scelerisque. Morbi quis magna elit. Nulla facilisis id ante sit amet fringilla. Sed iaculis consectetur lectus a interdum. Etiam ut sollicitudin lectus, et congue lectus.";
Rectangle rectangle = new Rectangle(100, 100, 800, 600);
graphics.DrawRectangle(pen, rectangle);

// Desenhar texto
graphics.DrawString(text, arial, brush, rectangle);

// Salvar imagem de saída
bitmap.Save(RunExamples.GetDataDir() + @"TextFonts\DrawText_out.png");

Desenhar texto em nova imagem do zero programaticamente em C#

Você pode precisar desenhar algum texto em formato de imagem para diferentes propósitos. Como você pode querer impedir que outros modifiquem ou copiem o conteúdo do texto. Você precisa seguir as seguintes etapas para desenhar texto em uma nova imagem:

  1. Inicialize a nova imagem do zero
  2. Inicialize o objeto de classe Brush
  3. Defina o estilo da fonte, tamanho, etc.
  4. Desenhar texto on the image
  5. Salvar imagem de saída

O trecho de código abaixo demonstra como desenhar texto em uma nova imagem a partir do zero programaticamente usando a linguagem C#:

// Inicialize a nova imagem do zero
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
graphics.Clear(Color.FromKnownColor(KnownColor.White));

// Inicializar o objeto da classe Brush
Brush brush = new SolidBrush(Color.FromKnownColor(KnownColor.Black));
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 1);

// Defina o estilo da fonte, tamanho, etc.
Font arial = new Font("Arial", 20, FontStyle.Regular);
string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sapien tellus, mattis et condimentum eget, commodo ut ipsum. Maecenas elit sapien, tempus sit amet mauris sit amet, hendrerit laoreet nisi. Nulla facilisi. Sed commodo, mauris eget porta commodo, nunc tellus volutpat mi, eu auctor diam libero vel neque. Vestibulum nec mattis dui, nec molestie nisl. Etiam in magna felis. Praesent non nulla tortor. Integer nec convallis purus. Fusce vitae mollis mauris. Cras efficitur dui at mi viverra scelerisque. Morbi quis magna elit. Nulla facilisis id ante sit amet fringilla. Sed iaculis consectetur lectus a interdum. Etiam ut sollicitudin lectus, et congue lectus.";
Rectangle rectangle = new Rectangle(100, 100, 800, 600);
graphics.DrawRectangle(pen, rectangle);

// Desenhar texto na imagem
graphics.DrawString(text, arial, brush, rectangle);

// Salvar imagem de saída
bitmap.Save(RunExamples.GetDataDir() + @"TextFonts\DrawText_out.png");

Conclusão

Neste artigo, aprendemos como adicionar ou desenhar texto em imagens. Você pode desenhar uma marca d’água de texto em imagens existentes e novas a partir do zero, sem precisar instalar nenhum aplicativo de terceiros. Além disso, você pode processar muitos formatos de imagem, incluindo JPG, PNG, BMP, Icon, Tiff, etc. A API oferece vários recursos para processar desenhos e gráficos conforme suas necessidades. Você pode visitar o Exemplo de Projeto que criamos como uma vitrine para diferentes cenários. Sinta-se à vontade para nos contatar a qualquer momento através dos Fóruns de Suporte Gratuito em caso de dúvidas. Felicidades!

Veja também

Info: A Aspose desenvolveu recentemente um [Conversor de Texto para GIF] GRATUITO]1.