添加水印代码:

    /// <summary>/// 添加水印/// </summary>/// <param name="background">背景图</param>/// <param name="watermark">水印</param>/// <param name="foffsetX">x偏移量</param>/// <param name="offsetY">y偏移量</param>/// <returns>结果图</returns>private Texture2D AddWatermark(Texture2D background, Texture2D watermark,int foffsetX,int offsetY){int startX = background.width - watermark.width - foffsetX;int endX = startX + watermark.width;int startY = offsetY;int endY = startY + watermark.height;for (int x = startX; x < endX; x++){for (int y = startY; y < endY; y++){Color bgColor = background.GetPixel(x, y);Color wmColor = watermark.GetPixel(x - startX, y - startY);Color final_color = Color.Lerp(bgColor, wmColor, wmColor.a / 1.0f);background.SetPixel(x, y, final_color);}}background.Apply();return background;}

下面是将文字转为图片(需在工程中添加System.Drawing.dll),此处本打算将bitmap作为贴图在图片上打水印,单实际结果出现背景,应该是非png造成,又不知道如何将字体直接转为png,所以就曲线救国,将bitmap存储到本地为png图片,然后获取到该透明图片并打水印:

    /// <summary>/// 文字转图片/// </summary>/// <param name="text">文字内容</param>/// <param name="fontSize">字体大小</param>/// <param name="paddingLeft">左边距</param>/// <param name="paddingTop">上边距</param>/// <param name="textColor">字体颜色</param>private Texture2D TextToPicture(string text, float fontSize, int paddingLeft, int paddingTop, System.Drawing.Color textColor){System.Drawing.Font textFont = new System.Drawing.Font("宋体", fontSize);System.Drawing.Bitmap bm = new System.Drawing.Bitmap((int)(text.Length * (fontSize + 40)), (int)(fontSize + 40));System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);System.Drawing.Brush b = new System.Drawing.SolidBrush(textColor);g.DrawString(text, textFont, b, paddingLeft, paddingTop);bm.Save(dirPath + "/UserName.png", System.Drawing.Imaging.ImageFormat.Png);Texture2D tex = GetPicture(dirPath + "/UserName.png");File.Delete(dirPath + "/UserName.png");g.Dispose();bm.Dispose();return tex;}

加载图片代码:

    /// <summary>/// 文件流加载图片/// </summary>/// <param name="path">路径</param>private Texture2D GetPicture(string path){DirectoryInfo dir = new DirectoryInfo(dirPath);FileStream fs = new FileStream(path, FileMode.Open);byte[] buffer = new byte[fs.Length];fs.Read(buffer, 0, buffer.Length);fs.Close();Texture2D tex = new Texture2D(2, 2);tex.LoadImage(buffer);tex.Apply();return tex;}

保存图片的话,需要协程,等到图片绘制结束,再保存(此处为保存RenderTexture的代码):

    /// <summary>/// 将RenderTexture转为JPG,并保存到文件夹/// </summary>/// <param name="rt">RenderTexture</param>/// <param name="jpgName">图片名</param>public IEnumerator SaveRenderTextureToJPG(RenderTexture rt, string jpgName){RenderTexture prev = RenderTexture.active;RenderTexture.active = rt;Texture2D jpg = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false);jpg.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);jpg = AddWatermark(jpg, watermark, 10, 10);//加图片水印jpg = AddWatermark(jpg, TextToPicture("末零", 20, 20, 20, System.Drawing.Color.Black), watermark.width - 30, 30);//加文字水印yield return new WaitForEndOfFrame();byte[] bytes = jpg.EncodeToJPG();FileStream file = File.Open(dirPath + "/" + jpgName + ".jpg", FileMode.Create);BinaryWriter writer = new BinaryWriter(file);writer.Write(bytes);file.Close();DestroyImmediate(jpg);jpg = null;RenderTexture.active = prev;}

Untiy添加水印并保存(包含文字转图片并打水印)相关推荐

  1. 创建富文本(文本可以包含文字,图片,自定义节点),c++,cocos2dx

    C++: 创建富文本(文本可以包含文字,图片,自定义节点) 这里测试富文本控件 ui::RichText* _richText = ui::RichText::create(); _richText- ...

  2. python批量添加水印_python 给目录下的图片批量加水印

    python 给目录下的图片批量加水印 water.py 放到 图片文件夹里 然后cd 到当前文件夹 python water.py #coding=utf-8 import Image import ...

  3. 使用canvas绘制海报,包含文字、图片、base64图片

    这里写目录标题 步骤 1. 创建画布 2. 画图片 3. 画文字 4. 画base64图片 保存 完整代码 js vue 这里介绍使用js(jQuery)或者vue使用画布绘制海报,小程序uniapp ...

  4. 文字转图片,文字水印图片,合成图片,教你 Python 生成网站原创配图!

    又是为站佬们服务(写)水文的一篇,如何应用python来生成或者说是合成自己的原创图片,适合各位站群大佬哥们生成自己的图片,避免没有配图或者侵权碰瓷的尴尬,当然本渣渣这里分享的仅仅是源码demo,后续 ...

  5. android动态生成背景透明带文字的图片

    生成的图片背景一直是黑色,几经查找资料发现,若要使背景为透明,必须设置为Config.ARGB_4444,或者Config.ARGB_8888,    而不是Bitmap.Config.RGB_565 ...

  6. 【记录】pdf添加水印(文字、图片水印)

    先上效果图 由于透明度设置的比较低,可能看不太清右上角的是文字和图片的水印,图片打码了. 该实现中有word转pdf的方法,如有需要请移步另一个word转pdf的帖子,小白一个写的比较冗余哈. pom ...

  7. acrobat给pdf加多行水印_批量pdf如何添加水印 多个pdf批量加相同水印的方法|支持同时添加文字、图片水印...

    本次还是给大家讲讲pdf文件的编辑转换处理,毕竟pdf文件也是在办公学习上是很常用到的,工作时很经常会遇到多个pdf文件要处理的情况,比如说制作好了一系列的pdf文档,需要上传到网络或者传输给他人查阅 ...

  8. python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;

    python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...

  9. c html保存为图片格式,【单选题】在 IE 中,若要把整个网页的文字和图片一起保存在一个文件中,则文件的类型应为 。 A. HTM B. HTML C. MHT D. TXT...

    [单选题]在 IE 中,若要把整个网页的文字和图片一起保存在一个文件中,则文件的类型应为 . A. HTM B. HTML C. MHT D. TXT 更多相关问题 不属于肺主治节范畴的是()A.主持 ...

最新文章

  1. Struts2学习小结
  2. 用js自动把url加入ubb代码的函数
  3. 支付和LBS定位对于O2O到底有多重要?
  4. 在上位计算机控制时不能将s7-200,plc控制系统编程题库.doc
  5. 工作一年后,我有些感悟(写于2017年)
  6. 用ntdsutil命令中的restore object 更新版本号
  7. 攻防世界-Web_php_include
  8. 《Windows脚本应用详解》已经出版
  9. LeetCode数据库 176. 第二高的薪水
  10. Java中Double保留后小数位的几种方法
  11. byte数组存的是什么_字节跳动为什么有字节2个字,因为程序的真谛:字节
  12. 北上广深杭程序员买房姿势图鉴
  13. 给我一个BigGAN,我就能开一家美术作品店,一幅画卖200美元
  14. 拓端tecdat|python3用ARIMA模型进行时间序列预测
  15. 如何选择jquery版本
  16. 如何清除谷歌浏览器中的counterflix广告病毒
  17. 机器学习之【蒙特卡罗法】
  18. 人类有两大学习能力,即记忆力和理解力
  19. 【215期推荐】另类思考:HIS能给医院带来什么“坏处”?
  20. ZYNQ sd卡启动失败,mmc0: error -84 whilst initialising SD card, SD卡只读,mmcblk0: mmc0:0001 SD 8 GiB (ro)

热门文章

  1. Tableau笔记(10)转置和拆分
  2. 解决Couldn‘t determine repo type for URL
  3. TPH-YOLOv5简述
  4. doc文档转docx格式,方便对文件进行批量处理【附代码】
  5. docker默认ip地址修改
  6. cpu计算机词汇中文意思是,CPU计算机口译词汇中英文对照1
  7. 闲谈 bypass AV
  8. (大白话版)子网划分、进制换算
  9. 【LDU】 Week2自测 Disney‘s FastPass | 状压dp、Floyd
  10. 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...