Thêm Watermark vào một Hình ảnh

Tài liệu này giải thích cách thêm watermark vào một hình ảnh bằng cách sử dụng Aspose.PSD. Thêm watermark vào một hình ảnh là một yêu cầu phổ biến cho các ứng dụng xử lý hình ảnh. Ví dụ này sử dụng lớp Graphics để vẽ một chuỗi trên bề mặt hình ảnh.

Thêm Watermark

Để minh họa hoạt động, chúng tôi sẽ tải một hình ảnh BMP từ đĩa và vẽ một chuỗi như watermark trên bề mặt hình ảnh bằng cách sử dụng phương thức DrawString của lớp Graphics. Chúng tôi sẽ lưu hình ảnh dưới định dạng PNG bằng cách sử dụng lớp PngOptions. Dưới đây là một đoạn mã mẫu minh họa cách thêm watermark vào một hình ảnh. Mã nguồn mẫu đã được chia thành các phần để dễ dàng theo dõi. Từng bước, các ví dụ cho thấy cách thêm watermark vào một hình ảnh:

  1. Tải một hình ảnh.
  2. Tạo và khởi tạo một đối tượng Graphics.
  3. Tạo và khởi tạo các đối tượng Font và SolidBrush.
  4. Vẽ một chuỗi như watermark bằng cách sử dụng phương thức DrawString của lớp Graphics.
  5. Lưu hình ảnh dưới định dạng PNG.

Đoạn mã sau cho thấy cách thêm watermark lên hình ảnh.

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

Thêm Watermark đường chéo

Thêm watermark đường chéo vào một hình ảnh tương tự như việc thêm watermark ngang như đã thảo luận ở trên, chỉ khác biệt một vài điểm. Để minh họa hoạt động, chúng tôi sẽ tải một hình ảnh JPG từ đĩa, thêm các biến đổi bằng cách sử dụng một đối tượng của lớp Matrix và vẽ một chuỗi như watermark trên bề mặt hình ảnh bằng cách sử dụng phương thức DrawString của lớp Graphics. Dưới đây là một đoạn mã mẫu minh họa cách thêm watermark đường chéo vào một hình ảnh. Mã nguồn mẫu đã được chia thành các phần để dễ dàng theo dõi. Từng bước, các ví dụ cho thấy cách thêm watermark đường chéo vào một hình ảnh:

  1. Tải một hình ảnh.
  2. Tạo và khởi tạo một đối tượng Graphics.
  3. Tạo và khởi tạo các đối tượng Font và SolidBrush.
  4. Lấy kích thước của hình ảnh trong đối tượng SizeF.
  5. Tạo một thể hiện của lớp Matrix và thực hiện biến đổi hợp thành.
  6. Gán biến đổi cho đối tượng Graphics.
  7. Tạo và khởi tạo một đối tượng StringFormat.
  8. Vẽ một chuỗi như watermark bằng cách sử dụng phương thức DrawString của lớp Graphics.
  9. Lưu hình ảnh kết quả.

Đoạn mã sau cho thấy cách thêm watermark đường chéo.

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