csharp,public class Watermark,{, public static void AddWatermark(string imagePath, string watermarkText), {, using (var image = Image.FromFile(imagePath)), using (var graphics = Graphics.FromImage(image)), {, var font = new Font("Arial", 20, FontStyle.Bold);, var brush = new SolidBrush(Color.FromArgb(128, Color.White));, var point = new PointF(image.Width 150, image.Height 30);, graphics.DrawString(watermarkText, font, brush, point);, image.Save("output_with_watermark.jpg");, }, },},
“在C#中,添加图片水印通常涉及图像处理库,下面是一个示例代码,演示如何在C#中实现一个添加图片水印的类。
你需要引用System.Drawing
命名空间,这是用于图像处理的主要库,你可以创建一个名为ImageWatermark
的类,该类包含一个静态方法,用于将水印添加到给定的图片上。
using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; public class ImageWatermark { public static void AddWatermark(string sourceImagePath, string watermarkImagePath, string outputImagePath) { try { // Load the source image and the watermark image using (Bitmap sourceImage = new Bitmap(sourceImagePath)) using (Bitmap watermarkImage = new Bitmap(watermarkImagePath)) { // Create a graphics object from the source image using (Graphics g = Graphics.FromImage(sourceImage)) { // Set the composite mode to an alpha composite mode g.CompositingMode = CompositingMode.SourceOver; g.CompositingQuality = CompositingQuality.HighQuality; // Calculate the position for the watermark image int x = sourceImage.Width watermarkImage.Width 10; // 10 pixels from the right edge int y = sourceImage.Height watermarkImage.Height 10; // 10 pixels from the bottom edge // Draw the watermark image onto the source image g.DrawImage(watermarkImage, new Point(x, y)); } // Save the result to a new file sourceImage.Save(outputImagePath, ImageFormat.Jpeg); } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } }
这个类中的AddWatermark
方法接受三个参数:源图片路径、水印图片路径和输出图片路径,它首先加载源图片和水印图片,然后在源图片上绘制水印图片,并将结果保存到指定的输出路径。
你可以使用以下代码来调用这个类并添加水印:
class Program { static void Main() { string sourceImagePath = @"pathtoyoursourceimage.jpg"; string watermarkImagePath = @"pathtoyourwatermarkimage.png"; string outputImagePath = @"pathtoyouroutputimage_with_watermark.jpg"; ImageWatermark.AddWatermark(sourceImagePath, watermarkImagePath, outputImagePath); Console.WriteLine("Watermark added successfully!"); } }
相关问答FAQs
Q1: 如何更改水印的位置?
A1: 在AddWatermark
方法中,你可以通过修改变量x
和y
的值来更改水印的位置,如果你想将水印放在图片的左上角,可以将x
和y
设置为0。
Q2: 如何调整水印的透明度?
A2: 你可以使用ColorMatrix
和ImageAttributes
类来设置水印的透明度,在Graphics
对象上调用g.SetClip()
方法,并传入一个带有透明度值的Region
对象,在绘制水印之前,设置Graphics.SmoothingMode
属性为SmoothingMode.AntiAlias
以获得更好的视觉效果。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1486500.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复