Las marcas de agua en las imágenes generalmente se usan para reclamar la propiedad del contenido. Por otro lado, las imágenes tienen una marca de agua para evitar el uso no autorizado o la falsificación. En varios casos, es posible que deba automatizar la función de marca de agua dentro de sus aplicaciones web o de escritorio. Para tales escenarios, este artículo cubre cómo agregar una marca de agua a las imágenes mediante programación usando C#. Esto también podría ser útil cuando necesite marcar un lote de imágenes de una sola vez. Vamos a empezar.
- API de C# para agregar marcas de agua a las imágenes
- Agregar marca de agua a una imagen en C#
- Agregar marca de agua diagonal a las imágenes en C#
- Obtenga una licencia de API gratuita
API de C# para agregar marcas de agua a las imágenes
Para agregar marcas de agua a las imágenes, usaremos Aspose.Imaging for .NET. Es una poderosa API de procesamiento de imágenes que admite una amplia gama de formatos de imagen. Además, la API facilita la manipulación de las imágenes. Puede descargar archivos binarios de la API o instalarlos mediante NuGet.
PM> Install-Package Aspose.Imaging
Agregar marca de agua a una imagen en C#
Los siguientes son los pasos para agregar una marca de agua a una imagen usando C#.
- Cargue la imagen usando la clase Image.
- Cree una instancia de la clase Graphics e inicialícela con el objeto Image.
- Configure la familia de fuentes, el tamaño y la cara usando la clase Fuente.
- Cree una instancia de la clase SolidBrush y establezca sus propiedades, como el color, etc.
- Crea una instancia de la clase StringFormat para establecer la alineación del texto.
- Agregue una marca de agua a la imagen usando el método Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Guarde la imagen usando el método Image.Save(String).
El siguiente ejemplo de código muestra cómo agregar una marca de agua a una imagen en C#.
// Cargar una imagen PNG existente
using (Image image = Image.Load("image.png"))
{
// Declarar un objeto String con texto de marca de agua
string theString = "This is watermark";
// Cree e inicialice una instancia de la clase Graphics e inicialice un objeto de SizeF para almacenar el tamaño de la imagen
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Crea una instancia de Font, inicialícela con Font Face, Size y Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Cree una instancia de SolidBrush y configure sus diversas propiedades
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Inicializar un objeto de la clase StringFormat y establecer sus diversas propiedades
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Dibuje la cadena en la salida Guardar imagen en el disco
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
Agregar marca de agua diagonal a las imágenes en C#
En varios casos, las marcas de agua se aplican a las imágenes en diagonal. Para esto, Aspose.Imaging for .NET le permite transformar el texto de la marca de agua en un cierto ángulo. Los siguientes son los pasos para agregar una marca de agua diagonal a una imagen.
- Cargue la imagen usando la clase Image.
- Cree una instancia de la clase Graphics e inicialícela con el objeto Image.
- Establezca la familia de fuentes, el tamaño y la cara usando la clase Fuente.
- Cree una instancia de la clase SolidBrush y establezca sus propiedades, como el color, etc.
- Crea una instancia de la clase StringFormat para establecer la alineación del texto.
- Cree una instancia de la clase Matrix y establezca el ángulo de transformación.
- Asigne el objeto Matrix a la propiedad Graphics.Transform.
- Agregue una marca de agua usando el método Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Guarde la imagen usando el método Image.Save(String).
El siguiente ejemplo de código muestra cómo agregar una marca de agua diagonal a las imágenes usando C#.
// Cargar una imagen PNG existente
using (Image image = Image.Load("Image.png"))
{
// Declarar un objeto String con texto de marca de agua
string theString = "45 Degree Rotated Text";
// Cree e inicialice una instancia de la clase Graphics e inicialice un objeto de SizeF para almacenar el tamaño de la imagen
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Crea una instancia de Font, inicialícela con Font Face, Size y Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Cree una instancia de SolidBrush y configure sus diversas propiedades
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Inicializar un objeto de la clase StringFormat y establecer sus diversas propiedades
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Crear un objeto de la clase Matrix para la transformación.
Matrix matrix = new Matrix();
// Primero una traslación luego una rotación
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// Establecer la transformación a través de Matrix
graphics.Transform = matrix;
// Dibuje la cadena en la salida Guardar imagen en el disco
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
Obtenga una licencia de API gratuita
En caso de que quiera probar la API sin limitaciones de evaluación, puede obtener una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido cómo agregar una marca de agua a las imágenes usando C#. Además, ha visto cómo transformar el texto de la marca de agua en un ángulo particular. Puede explorar más sobre la API de procesamiento de imágenes de C# usando documentación. En caso de que tenga alguna pregunta o consulta, contáctenos a través de nuestro foro.