当前位置: 首页 > news >繁体>C#给图片加文字水印

C#给图片加文字水印

    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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-18331.html

如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!


相关文章:

  • Appium+python自动化17-启动iOS模拟器APP源码案例
  • sql server使用的注意点及优化点 自备
  • JDK编码
  • AssetPostprocessor.OnPreprocessModel
  • dedecms织梦让channelartlist标签支持currentstyle属性
  • 从github下载的项目如何运行??---------本文以vue的项目为例
  • openwrt源码下载移植
  • DC guide ---3
  • [hiho1160] 攻城略地
  • 题目整理0924
  • lumen安装后输出hello world
  • JS--微信浏览器复制到剪贴板实现
  • 网络对抗实验一
  • Vue-cli proxyTable 解决开发环境的跨域问题
  • HIVE基础操作
  • [Python] Different ways to test multiple flags at once in Python
  • vue实现侧边栏手风琴效果
  • js获取元素,窗口的宽度、高度
  • cCupcake---ToFu
  • 在Linux上显示某个进程的线程的几种方式
  • Yii2 upload
  • HDU 2014 - 青年歌手大奖赛_评委会打分
  • Cent OS 下 VI 使用方法
  • 10.5~10.6复习与预习的进行
  • 神奇DP [HNOI2004] 打砖块
  • junit搭配hamcrest使用
  • weblogic查看版本号教程
  • shell脚本需求
  • lightoj 1382 - The Queue(树形dp)
  • 利用GDAL进行工具开源化改造
  • Git相关操作一
  • Centos干净卸载apache-php-mysql
  • jquery获取json对象中的key小技巧
  • 经典算法-(一)汉诺塔(河内之塔)
  • 第二次课动手动脑的问题以及课后实验性的问题
  • sublime3 配置go的开发环境
  • jquery各种事件使用方法总结(from:天宇之游)
  • Web API 2 入门——使用Web API与ASP.NET Web窗体(谷歌翻译)
  • 最小费用最大流板子
  • bzoj2339: [HNOI2011]卡农
  • 【BZOJ3379】[Usaco2004 Open]Turning in Homework 交作业 DP
  • MySQL--Centos7下安装5.7.19
  • nodepad代码格式复制到word发布到博客
  • 用SQL语言操作数据
  • 一个很可爱的二次元风格的个人技术博客
  • 接口测试基础——第6篇unittest模块(三)
  • 数据库操作之——约束
  • 驱动程序的同步处理
  • Codeforces Round #442 (Div. 2) D. Olya and Energy Drinks
  • ppt制作元素采集