La popular aplicación Photoshop de Adobe utiliza PSD (documento de Photoshop) como formato de archivo de imagen nativo. Se usa comúnmente para crear logotipos, folletos y otras imágenes en las que el archivo PSD contiene varias capas. Podemos proteger fácilmente el diseño agregando la marca de agua de texto o imagen a un archivo PSD mediante programación. En este artículo, aprenderemos cómo agregar una marca de agua a un PSD en C#.
Este artículo cubrirá los siguientes temas:
- API de C# Photoshop para agregar marca de agua a PSD
- Agregar una marca de agua de texto a PSD
- Crear una marca de agua diagonal en PSD
- Agregar una marca de agua de imagen a PSD
C# Photoshop API para agregar marca de agua a PSD
Para agregar una marca de agua de texto o imagen en un archivo PSD, usaremos la API Aspose.PSD para .NET. Es una API de manipulación de formato de archivo de Adobe Photoshop fácil de usar. Permite la carga y lectura de archivos PSD y PSB en aplicaciones .NET. La API nos permite actualizar las propiedades de las capas, agregar marcas de agua, realizar compresión, rotar, escalar o renderizar PSD y varios otros formatos de archivo admitidos sin necesidad de instalar Adobe Photoshop.
La clase PsdImage de la API permite cargar, editar y guardar archivos PSD. La clase Graphics representa los gráficos en la imagen. Tenemos el método DrawString(string, Font, Brush, RectangleF, StringFormat) de esta clase que dibuja la cadena de texto especificada en el rectángulo especificado con los objetos de fuente y pincel especificados. La clase Layer representa la capa PSD. El método DrawImage(Point, RasterImage) de esta clase dibuja la imagen en la capa. Podemos guardar el PSD en la ubicación de archivo especificada utilizando el método Save(string, ImageOptionsBase).
Descargue la DLL de la API o instálela mediante NuGet.
PM> Install-Package Aspose.PSD
Agregar marca de agua de texto a PSD usando C#
Podemos agregar cualquier texto como marca de agua a un archivo PSD siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
- A continuación, cree una instancia de la clase Graphics.
- Luego, defina un objeto de clase de fuente para dibujar el ancho de la marca de agua.
- A continuación, cree una instancia de la clase SolidBrush con color.
- Luego, especifique la alineación de cadenas.
- Después de eso, llama al método DrawString().
- Finalmente, guarde el archivo de salida usando el método Save().
El siguiente ejemplo de código muestra cómo agregar una marca de agua de texto a un archivo PSD en C#.
// Este ejemplo de código muestra cómo agregar una marca de agua de texto a un archivo PSD
// Cargue un archivo PSD como una imagen y conviértalo en PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Cree objetos gráficos para realizar operaciones de dibujo.
Graphics graphics = new Graphics(psdImage);
// Crea una fuente para dibujar una marca de agua.
Font font = new Font("Arial", 25.0f);
// Cree un pincel sólido con el color alfa configurado cerca de 0 para usar el efecto de marca de agua.
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Especifique la alineación de las cadenas para poner una marca de agua en el centro de la imagen.
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
// Dibuje una marca de agua usando una fuente, un pincel parcialmente transparente y una matriz de rotación en el centro de la imagen.
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf);
// Exporte la imagen a formato de archivo PNG.
psdImage.Save(@"C:\Files\AddWatermark_output.png", new PngOptions());
También podemos guardar la salida como un archivo PSD utilizando el siguiente ejemplo de código:
psdImage.Save(@"C:\Files\AddWatermark_output.psd", new PsdOptions());
Crear marca de agua diagonal en PSD usando C#
Podemos agregar una marca de agua de texto diagonal a un archivo PSD siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
- A continuación, cree una instancia de la clase Graphics.
- Luego, defina un objeto de clase de fuente para dibujar el ancho de la marca de agua.
- Mientras tanto, cree una instancia de la clase SolidBrush con color.
- Luego, especifique la matriz de transformación para rotar la marca de agua.
- Más tarde, especifique la alineación de cadenas.
- Después de eso, llama al método DrawString().
- Finalmente, guarde el archivo de salida usando el método Save().
El siguiente ejemplo de código muestra cómo agregar una marca de agua de texto diagonal a un archivo PSD en C#.
// Este ejemplo de código muestra cómo agregar una marca de agua de texto diagonal a un archivo PSD
// Cargue un archivo PSD como una imagen y conviértalo en PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Crear objetos gráficos para realizar operaciones de dibujo
Graphics graphics = new Graphics(psdImage);
// Crear fuente para dibujar marca de agua con
Font font = new Font("Arial", 25.0f);
// Cree un pincel sólido con el color alfa configurado cerca de 0 para usar el efecto de marca de agua
SolidBrush brush = new SolidBrush(Color.FromArgb(80, 128, 128, 128));
// Especifique la matriz de transformación para rotar la marca de agua
graphics.Transform = new Matrix();
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2));
// Especifique la alineación de la cadena para colocar una marca de agua en el centro de la imagen
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
// Dibuje una marca de agua usando una fuente, un pincel parcialmente transparente en el centro de la imagen
graphics.DrawString("Sample Watermark Text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf);
// Exportar la imagen a formato de archivo PNG
psdImage.Save(@"C:\Files\AddDiagnolWatermark_output.png", new PngOptions());
Agregar marca de agua de imagen a PSD usando C#
También podemos agregar una imagen como marca de agua a un archivo PSD siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue el archivo PSD como PsdImage utilizando la clase Image.
- A continuación, cree una instancia de la clase Layer.
- Luego, establece la altura, el ancho y la opacidad de la capa.
- A continuación, llame al método AddLayer() para agregar la capa a PSD.
- Después de eso, cargue una imagen de marca de agua en una capa.
- Luego, agregue una marca de agua de imagen a la capa.
- Después de eso, llama al método DrawImage(). Toma la ubicación y la capa de imagen de marca de agua como argumentos.
- Finalmente, guarde el archivo de salida usando el método Save().
El siguiente ejemplo de código muestra cómo agregar una marca de agua de imagen a un archivo PSD en C#.
// Este ejemplo de código muestra cómo agregar una marca de agua de imagen a un archivo PSD
// Cargue un archivo PSD en el objeto PsdImage
PsdImage psdImage = (PsdImage)Image.Load(@"C:\Files\SimplePSD.psd");
// Agregar una nueva capa de marca de agua
var baseLayer = new Layer();
baseLayer.Top = 200;
baseLayer.Bottom = 600;
baseLayer.Right = 600;
baseLayer.Opacity = 50;
// Agregar capa al archivo PSD
psdImage.AddLayer(baseLayer);
// Cargue una imagen de marca de agua en una capa
FileStream ImageWatermarkFile = new FileStream(@"C:\Files\aspose_logo.png", FileMode.Open);
Layer ImageWatermarkLayer = new Layer(ImageWatermarkFile);
// Agregar marca de agua de imagen a la capa base
baseLayer.DrawImage(new Point(0, 200), ImageWatermarkLayer);
// Guarde el archivo PSD final con marca de agua
psdImage.Save(@"C:\Files\ImageWatermarkedPSD.png", new PngOptions());
Obtenga una Licencia Temporal Gratis
Puede obtener una licencia temporal gratuita para probar Aspose.PSD para .NET sin limitaciones de evaluación.
Conclusión
En este artículo, hemos aprendido a:
- agregar una nueva capa a una imagen PSD;
- agregue texto o imagen de marca de agua al PSD;
- guarde PSD como una imagen PNG o PSD usando C#.
Además de agregar una marca de agua a PSD en C#, puede obtener más información sobre Aspose.PSD para .NET utilizando documentación y explorar diferentes funciones compatibles con la API. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.