Hinzufügen eines Wasserzeichens zu einem Bild

Hinzufügen eines Wasserzeichens zu einem Bild

Dieses Dokument erklärt, wie man mithilfe von Aspose.PSD ein Wasserzeichen zu einem Bild hinzufügt. Das Hinzufügen eines Wasserzeichens zu einem Bild ist eine häufige Anforderung für Bildverarbeitungsanwendungen. Dieses Beispiel verwendet die Graphics-Klasse, um einen Text auf der Bildebene zu zeichnen.

Hinzufügen eines Wasserzeichens

Um die Operation zu demonstrieren, laden wir ein BMP-Bild von der Festplatte und zeichnen einen Text als Wasserzeichen auf der Bildebene mithilfe der Graphics-Klasse DrawString-Methode. Wir speichern das Bild im PNG-Format mithilfe der PngOptions-Klasse. Im Folgenden finden Sie einen Code, der zeigt, wie man einem Bild ein Wasserzeichen hinzufügt. Der Beispielquellcode wurde in Teile aufgeteilt, um das Verständnis zu erleichtern. Schritt für Schritt zeigen die Beispiele, wie man:

  1. Ein Bild laden.
  2. Ein Graphics-Objekt erstellen und initialisieren.
  3. Schriftart- und SolidBrush-Objekte erstellen und initialisieren.
  4. Einen Text als Wasserzeichen mithilfe der Graphics-Klasse DrawString-Methode zeichnen.
  5. Bild im PNG-Format speichern.

Der folgende Code zeigt Ihnen, wie Sie ein Wasserzeichen auf dem Bild hinzufügen.

// 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());
}

Hinzufügen eines diagonalen Wasserzeichens

Das Hinzufügen eines diagonalen Wasserzeichens zu einem Bild ist ähnlich wie das Hinzufügen eines horizontalen Wasserzeichens, wie oben besprochen, mit einigen Unterschieden. Um die Operation zu demonstrieren, laden wir ein JPG-Bild von der Festplatte, fügen Transformationen mithilfe eines Objekts der Matrix-Klasse hinzu und zeichnen einen Text als Wasserzeichen auf der Bildebene mithilfe der Graphics-Klasse DrawString-Methode. Im Folgenden finden Sie einen Code, der zeigt, wie man einem Bild ein diagonales Wasserzeichen hinzufügt. Der Beispielquellcode wurde in Teile aufgeteilt, um das Verständnis zu erleichtern. Schritt für Schritt zeigen die Beispiele, wie man:

  1. Ein Bild laden.
  2. Ein Graphics-Objekt erstellen und initialisieren.
  3. Font- und SolidBrush-Objekte erstellen und initialisieren.
  4. Größe des Bildes im SizeF-Objekt abrufen.
  5. Eine Instanz der Matrix-Klasse erstellen und eine zusammengesetzte Transformation durchführen.
  6. Transformation dem Graphics-Objekt zuweisen.
  7. Ein StringFormat-Objekt erstellen und initialisieren.
  8. Einen Text als Wasserzeichen mithilfe der Graphics-Klasse DrawString-Methode zeichnen.
  9. Resultierendes Bild speichern.

Der folgende Code zeigt Ihnen, wie Sie ein diagonales Wasserzeichen hinzufügen.

// 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());
}