c#添加水印效果

                       c#添加水印效果

下面的代码中 添加文字水印 和 图片水印是不能共存的(下面写在一起是为了方便显示)

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
private void Btn_Upload_Click( object sender, System.EventArgs e)
{
if (UploadFile.PostedFile.FileName.Trim() != "" )
{
// 上传文件
string extension = Path.GetExtension(UploadFile.PostedFile.FileName).ToUpper();
string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
string path = Server.MapPath( " . " ) + " /UploadFile/ " + fileName + extension;
UploadFile.PostedFile.SaveAs(path);

// 加文字水印,注意,这里的代码和以下加图片水印的代码不能共存
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
Graphics g
= Graphics.FromImage(image);
g.DrawImage(image,
0 , 0 , image.Width, image.Height);
Font f
= new Font( " Verdana " , 32 );
Brush b
= new SolidBrush(Color.White);
string addText = AddText.Value.Trim();
g.DrawString(addText, f, b,
10 , 10 );
g.Dispose();

// 加图片水印
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
System.Drawing.Image copyImage
= System.Drawing.Image.FromFile( Server.MapPath( " . " ) + " /Alex.gif " );
Graphics g
= Graphics.FromImage(image);
g.DrawImage(copyImage,
new Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0 , 0 , copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();

// 保存加水印过后的图片,删除原始图片
string newPath = Server.MapPath( " . " ) + " /UploadFile/ " + fileName + " _new " + extension;
image.Save(newPath);
image.Dispose();
if (File.Exists(path))
{
File.Delete(path);
}

Response.Redirect(newPath);
}
}

 

转载于:https://www.cnblogs.com/Mr_JinRui/archive/2010/04/28/1723137.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用C#中的GDI+库来给图片添加水印效果。以下是一个简单的示例代码: ```csharp using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; public static Image AddWatermark(Image image, string watermarkText, Font font, Color color, float opacity, PointF position) { // 创建一个与原图相同大小的Bitmap对象 Bitmap bitmap = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb); // 创建一个Graphics对象,用于绘制水印 using (Graphics graphics = Graphics.FromImage(bitmap)) { // 将Graphics对象的渲染质量设置为高质量 graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.CompositingQuality = CompositingQuality.HighQuality; // 绘制原图 graphics.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); // 创建一个Brush对象,用于绘制水印文字 Brush brush = new SolidBrush(Color.FromArgb((int)(opacity * 255), color)); // 绘制水印文字 graphics.DrawString(watermarkText, font, brush, position); // 释放Brush对象 brush.Dispose(); } // 返回添加水印后的图片 return bitmap; } ``` 以上代码中,`AddWatermark`方法接受以下参数: - `image`:要添加水印的图片。 - `watermarkText`:要添加水印文字。 - `font`:水印文字的字体。 - `color`:水印文字的颜色。 - `opacity`:水印文字的不透明度,取值范围为0-1。 - `position`:水印文字的位置。 使用示例: ```csharp Image image = Image.FromFile("sample.jpg"); Font font = new Font("Arial", 24); Color color = Color.White; float opacity = 0.5f; PointF position = new PointF(10, 10); Image newImage = AddWatermark(image, "Sample Watermark", font, color, opacity, position); newImage.Save("sample-with-watermark.jpg", ImageFormat.Jpeg); ``` 以上示例中,我们从文件中加载了一张名为`sample.jpg`的图片,然后使用`AddWatermark`方法添加了一个水印,最后将添加水印后的图片保存为`sample-with-watermark.jpg`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值