借鉴于博客园园友的方法,大神神风(https://www.cnblogs.com/tandyshen/archive/2012/04/14/picwater.html) ,很实用的一种 自定义水印方法,搬运过来,记录方便使用,只针对这一个功能实现,大家可以F12 追着看看

Graphics

画板方法其中的操作。

public static string GetWatermarkPic(string picPath, string format, int size, string text, int alpha, string outPath)
{
try
{ FileStream fs = new FileStream(picPath, FileMode.Open); //读取文件流 提供文件读写方法
BinaryReader br = new BinaryReader(fs); //继承object 不能对象,必须串联到stream 数据流 在进行操作
byte[] bytes = br.ReadBytes((int)fs.Length);//读取图片 转化为 二进制流 br.Close();
fs.Close(); MemoryStream ms = new MemoryStream(bytes); //把流存储到内存中 memoryStream 在内存中开辟一个 流大小的空间
System.Drawing.Image imgPhoto = System.Drawing.Image.FromStream(ms);
int imgPhotoWidth = imgPhoto.Width;
int imgPhotoHeight = imgPhoto.Height; Bitmap bmPhoto = new Bitmap(imgPhotoWidth, imgPhotoHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); // 是用于处理由像素数据定义的图像的对象 System.Drawing.Imaging.PixelFormat.Format24bppRgb颜色数据格式
bmPhoto.SetResolution(, ); //设置图片分辨率
Graphics gbmPhoto = Graphics.FromImage(bmPhoto);//创建一个 GDI+ 绘图图面 //gif背景色
gbmPhoto.Clear(Color.FromName("white"));
gbmPhoto.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
gbmPhoto.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gbmPhoto.DrawImage(imgPhoto, new Rectangle(, , imgPhotoWidth, imgPhotoHeight), , , imgPhotoWidth, imgPhotoHeight, GraphicsUnit.Pixel);
System.Drawing.Font font = null;
font = new Font(format, size, FontStyle.Bold); //测量区域
System.Drawing.SizeF crSize = new SizeF();//存储 尺寸
crSize = gbmPhoto.MeasureString(text, font);//测量 汇成的图案大小
float y = imgPhotoHeight - crSize.Height;
float x = imgPhotoWidth - crSize.Width;
System.Drawing.StringFormat strFormat = new System.Drawing.StringFormat();
strFormat.Alignment = System.Drawing.StringAlignment.Center; //❀两次 制造透明效果
System.Drawing.SolidBrush semiTransBrush2 = new System.Drawing.SolidBrush(Color.FromArgb(alpha, , , ));
gbmPhoto.DrawString(text, font, semiTransBrush2, x + , y + ); System.Drawing.SolidBrush semiTransBrush = new System.Drawing.SolidBrush(Color.FromArgb(, , , ));
gbmPhoto.DrawString(text, font, semiTransBrush, x, y);
bmPhoto.Save(outPath, System.Drawing.Imaging.ImageFormat.Jpeg); gbmPhoto.Dispose();
imgPhoto.Dispose();
bmPhoto.Dispose(); return "";
}
catch (Exception ex)
{ return ex.ToString();
} }

以上是 图片水印的 生成方法  其中有一点 比较重点的是  下面的这个语句:

Graphics gbmPhoto = Graphics.FromImage(bmPhoto);//创建一个 GDI+ 绘图图面 
作用就是把这个 图片 打开一个 绘画对象,实现 添加水印图片 等内容 ,最后把 编辑好的,直接生成到一个地址. 一下是调用方法:
GetWatermarkPic("图片地址", "微软雅黑", , "王天来霸王印章",, "导出地址,必须添加 图片名称:E:\\权衡.jpg");

附带一张效果图片:

.Net t图片生成水印的更多相关文章

  1. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  2. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  3. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  4. thinkphp给图片打水印不清晰

    项目中打印条形码的函数,从thinkphp自带的water函数修改而来的. 贴上代码: /** * water2 * 改写thinkphp的water函数更强健的函数,增加了写入位置参数 去掉了alp ...

  5. PHP 上传图片,生成水印,支持文字, gif, png

    //admin_upfile.php <html> <meta http-equiv="Content-Type" content="text/html ...

  6. Nginx Image Module图片缩略图 水印处理模块

    Nginx Image Module图片缩略图 水印处理模块 下载Tengine tar -zxvf tengine-1.4.5.tar.gz cd tengine-1.4.5 下载Nginx tar ...

  7. C#给图片加文字和图片的水印

    /// <summary> /// WaterMark 的摘要说明 /// </summary> /// 图片加水印 /// <param name="strC ...

  8. php对图片加水印--将图片先缩小,再在上面加水印

    方法: /**  * 图片加水印(适用于png/jpg/gif格式)  *  * @author flynetcn  *  * @param $srcImg  原图片  * @param $water ...

  9. php对图片加水印--将文字作为水印加到图片

    方法代码: /**  * 图片加水印(适用于png/jpg/gif格式)  *  * @author flynetcn  *  * @param $srcImg  原图片  * @param $wat ...

随机推荐

  1. 【BZOJ2141】排队 树状数组+分块

    [BZOJ2141]排队 Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和.红星幼儿园的小朋友们排起了长长地队伍,准备 ...

  2. ios UIImage图片拉伸 resizableImageWithCapInsets:

    常见的按钮添加和背景设置如下: UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(80, 130, 160, 44)];[bu ...

  3. ios Quartz 各种绘制图形用法

    摘要: CoreGraphics的功能非常强大,可以绘制各种图形:今天学习一下怎么绘制简单的点线面,记录学习. 一.导入coreGraphics.framework 二.绘制图形 1.绘制矩形 // ...

  4. 170606、防止sql注入(三)

    SpringMVC利用拦截器防止 SQL注入案例一个简单的PHP登录验证SQL注入 比如一个公司有一个用来管理客户的客户管理系统,在进入后台进行管理的时候需要输入用户名和密码.假设在客户端传给服务器的 ...

  5. Golang学习-第二篇 搭建一个简单的Go Web服务器

    序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...

  6. AngularJs:Directive指令用法

    摘自:http://www.jb51.net/article/83051.htm 摘要:Directive(指令)是AngularJ非常强大而有有用的功能之一.它就相当于为我们写了公共的自定义DOM元 ...

  7. python中的Redis键空间通知(过期回调)

    介绍 Redis是一个内存数据结构存储库,用于缓存,高速数据摄取,处理消息队列,分布式锁定等等. 使用Redis优于其他内存存储的优点是Redis提供持久性和数据结构,如列表,集合,有序集和散列. 在 ...

  8. centos 配置mysql

    1.在线安装 1.首先检测一下,mysql之前有没有被安装 命令:rpm -qa | grep mysql 2.删除mysql的命令: rpm -e --nodeps `rpm -qa | grep ...

  9. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  10. 10行代码搞定移动web端自定义tap事件

    发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...