public class TxtWaterMark{public enum WaterPositionMode{LeftTop,//左上LeftBottom,//左下RightTop,//右上RightBottom,//右下Center,//中间Other//其他,若选此项AddWaterText方法内自己把xValue和yValue穿进去
        }/// <summary>/// 给图片加文字水印/// </summary>/// <param name="oldpath">图片地址</param>/// <param name="savepath">加上文字水印以后图片保存地址</param>/// <param name="watertext">水印文字</param>/// <param name="position">水印位置</param>/// <param name="fontName">水印文字字体</param>/// <param name="fontSize">水印文字大小</param>/// <param name="color">水印文字颜色</param>/// <param name="alpha">水印文字透明度</param>/// <param name="isBold">水印文字是否加粗</param>/// <param name="xValue">水印位置position Other选项下设置</param>/// <param name="yValue">水印位置position Other选项下设置</param>public static void AddWaterText(string oldpath, string savepath, string watertext, WaterPositionMode position, string fontName, int fontSize, string fontColor, int alpha, bool isBold, float xValue = 0, float yValue = 0){Image image = Image.FromFile(oldpath);Bitmap bitmap = new Bitmap(image.Width, image.Height);Graphics graphics = Graphics.FromImage(bitmap);graphics.Clear(Color.White);graphics.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);Font font = new Font(fontName, fontSize, FontStyle.Bold);if (!isBold){font = new Font(fontName, fontSize);}SizeF ziSizeF = new SizeF();ziSizeF = graphics.MeasureString(watertext, font);float x = 0f;float y = 0f;switch (position){case WaterPositionMode.LeftTop:x = ziSizeF.Width / 2f;y = 0f;break;case WaterPositionMode.LeftBottom:x = ziSizeF.Width / 2f;y = image.Height - ziSizeF.Height;break;case WaterPositionMode.RightTop:x = image.Width * 1f - ziSizeF.Width / 2f;y = 0f;break;case WaterPositionMode.RightBottom:x = image.Width - ziSizeF.Width;y = image.Height - ziSizeF.Height;break;case WaterPositionMode.Center:x = image.Width / 2;y = image.Height / 2 - ziSizeF.Height / 2;break;case WaterPositionMode.Other:x = xValue + ziSizeF.Width / 2f;y = yValue;break;}try{StringFormat stringFormat = new StringFormat { Alignment = StringAlignment.Center };SolidBrush solidBrush = new SolidBrush(Color.FromArgb(alpha < 0 ? 0 : alpha, 0, 0, 0));graphics.DrawString(watertext, font, solidBrush, x + 1f, y + 1f, stringFormat);SolidBrush brush = new SolidBrush(Color.FromArgb(alpha < 0 ? 0 : alpha, ColorTranslator.FromHtml(fontColor)));graphics.DrawString(watertext, font, brush, x, y, stringFormat);solidBrush.Dispose();brush.Dispose();bitmap.Save(savepath, ImageFormat.Png);}catch (Exception e){}finally{bitmap.Dispose();image.Dispose();}}}

转载于:https://www.cnblogs.com/blazeZzz/p/9558050.html

C#给图片加文字水印相关推荐

  1. PHP实现给图片加文字水印

    PHP实现给图片加文字水印 一.开发环境 1.Windows+Apache+MySQL+PHP的环境. 2.文本编辑器:Sublime. 二.主要技术 PHP+HTML+CSS 三.效果图与具体步骤 ...

  2. Java图片加文字水印

    Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...

  3. 阿里云 OSS 对象存储 OSS 图片加文字水印

    阿里云 OSS 对象存储 实际开发需先阅读 阿里云 [OSS快速入门文档](https://help.aliyun.com/document_detail/31883.html?spm=5176.20 ...

  4. JAVA - base64图片加文字水印

    场景为:前端传入转码后的base64图片字符串,后台加水印并转为图片,再上传 使用postman调试接口时,总会出现400bad request的情况 若是把图片转码的base64编码放在header ...

  5. cairo和pixman库给bmp图片加文字水印

    两个步骤 1,用cairo库来生成一个图片,然后在上面把文字写到图片上 主要用到 cairo_image_curface_surface_create,生成一个空白的图(为了把文字向上写) cairo ...

  6. python显示gif图片_Python给gif图片加文字水印

    为了成批地给图像增加水印,我们这里用到了枕头模块.它的英文名为pillow.安装它的方式为用cmd命令打开DOS提示符窗口,然后输入pip install pillow即可.就像下面这样: pytho ...

  7. html位置插入透明动画文字,视频加移动水印 视频添加图片加文字水印 设置透明漂浮移动并控制显示时间...

    有没有小伙伴平时在看一些视频的时候,视频里会有一张图片然而图片里面有文字,然后是透明的图片,并且还漂浮移动在视频画面里,过了一会儿就自动消失了.这也是一直添加水印的方法,不过是把图片设置了半透明的样子 ...

  8. java tif格式图片_java给tif格式图片加文字水印?

    展开全部 package com.coderli.image; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

  9. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果

    JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...

  10. php 文字水印换行,thinkPHP5图片加文字水印实现换行的方法

    原有的添加文字的代码: Image::open(ROOT_PATH . "1.jpg") ->text("斯巴奴男装狐狸毛领中长款加厚asdasdsadasdasd ...

最新文章

  1. leetcode-386 字典序排数
  2. TensorFlow、Numpy中的axis的理解
  3. 设计模式 — 结构型模式 — 外观模式
  4. debian linux修改语言,Debian Linux系统下英文系统切换为中文
  5. tkinter中的canvas的边框问题
  6. 酷炫,用Html5/CSS实现文字阴影
  7. ApacheBench~网站性能测试工具
  8. 谈谈jdmailgate邮件wg在企业中的角色扮演
  9. Scratch-Q版三国小人物角色素材分享,值得您的收藏!
  10. 100kW以上 中高频感应加热电源 双DSP数字式IGBT控制板
  11. 计算机画图怎样更改文字,一招教你利用画图工具修改图片上的文字
  12. 《金山词霸2009 牛津版》插件工具加载
  13. 404是什么意思,404错误页面有什么用?
  14. 处理 /home/china/.vimrc 时发生错误: 第1行: E492: 不是编辑器的命令
  15. 南卡OE Pro上线!开放式耳机新里程碑!前所未有的音质舒适双冠
  16. PyTorch RuntimeError: size mismatch, m1:
  17. Github每日精选(第48期):SQLite下的知识库memos
  18. 2022.10.10 英语背诵
  19. VMware-ovftool命令行部署与导出镜像
  20. 记canvas画笔笔迹的多次优化过程

热门文章

  1. python数据分析需要哪些库-用python进行数据分析的五个最常用库
  2. java版本号分段比较_java实现的版本号比较
  3. jmeter请求提示nocokies_Jmeter接口测试进阶篇之保存测试结果
  4. 手挽手带你学VUE:四档 Vue-cli3 Vuex Vue-router
  5. 【图文】远程桌面链接:这可能是由于credssp加密oracle修正
  6. mysql 5.6的安装
  7. 自己动手一步步安装Linux系统
  8. PHP date函数参数
  9. HDOJ---2571 命运[DP]
  10. 权限管理----用户与模块关系