生成水印

        /// <summary>
        /// 创建图片字节数组
        /// </summary>
        /// <returns></returns>
        private byte[] CreateImgData(string text)
        {
            byte[] resData = null;
            using (var img = new Bitmap(300, 300))
            {
                using (var graphics = Graphics.FromImage(img))
                {
                    //消除锯齿
                    graphics.SmoothingMode = SmoothingMode.AntiAlias;
                    graphics.TextRenderingHint = TextRenderingHint.AntiAlias;

                    //字体设置(根据实际情况提供自定义字体的路径)
                    var tffFilePath = Path.Combine(“方正彩云_GBK.ttf”); ;
                    PrivateFontCollection pfc = new PrivateFontCollection();
                    pfc.AddFontFile(tffFilePath);
                    var font = new Font(pfc.Families[0], 24, FontStyle.Regular);

                    //文字信息
                    var size = graphics.MeasureString(text, font);
                    var textPoint = new PointF((img.Width - size.Width) / 2, (img.Height - size.Height) / 2);

                    //旋转
                    Matrix mtxSave = graphics.Transform;
                    Matrix mtxRotate = graphics.Transform;
                    mtxRotate.RotateAt(-45f, new PointF(img.Width / 2, img.Height / 2));
                    graphics.Transform = mtxRotate;

                    //绘制文字
                    Brush b = new SolidBrush(Color.FromArgb(128, 204, 204, 204));
                    graphics.DrawString(text, font, b, (img.Width - size.Width) / 2, (img.Height - size.Height) / 2);

                    //输出字节数组
                    using (var memoryStream = new MemoryStream())
                    {
                        img.Save(memoryStream, ImageFormat.Png);
                        resData = memoryStream.ToArray();
                    }

                }
            }
            return resData;
        }

  

时间: 2024-11-04 17:19:13

生成水印的相关文章

.NET中生成水印更好的方法

.NET中生成水印更好的方法 为了保护知识产权,防止资源被盗用,水印在博客.网店等场景中非常常见. 本文首先演示了基于System.Drawing.Image做正常操作.然后基于Direct2D/WIC/DirectWrite,演示了一种全新.不同的"骚"操作. 方法1-System.Drawing给图片加水印 System.Drawing.Image原生属于GDI的一部分,是Windows Only,但随着NuGet包System.Drawing.Common的发布,现在System

图片上传 并生成水印

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace MySystemManager.Utility 7 { 8 public class ImageTextAndPicter 9 { 10 /// <summary> 11 /// 生成缩略图 12 /// </summary> 13 /// <param name

ASP组件AspJpeg(加水印)生成缩略图等使用方法

ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能.下面简单介绍一下使用方法,需要的朋友可以了解下 一.为图片添加水印 复制代码 代码如下: <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件

图片水印的生成方法

生成水印的过程.其实分为三个环节:第一,载入原始图片:第二,载入水印图片:第三,保存新的图片. Java代码   * /** *     * create the bitmap from a byte array *     * *     * @param src the bitmap object you want proecss *     * @param watermark the water mark above the src *     * @return return a bi

Aspose.Cell 生成带水印的excel文件

1 private void ExportDataSet(string fileName, string templatePath, DataSet ds, HttpResponse reponse, FileFormatType FileType= FileFormatType.Xlsx) 2 { 3 Aspose.Cells.License Clicense = new Aspose.Cells.License(); 4 string asposePath = Server.MapPath(

Flink 1.8 Generating Timestamps, Watermarks 生成时间戳, 水印

原文:https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/event_timestamps_watermarks.html 本节与基于事件时间运行的程序相关. 要处理事件时间,流式传输程序需要相应地设置时间特性. final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setStrea

Thinkphp中文水印和图片水印合体集成插件

今天给大家分享一下中文水印和图片水印合体集成插件,Thinkphp只有单独的加文字或加图片,由于工作的需要需要同里加"文字"和"图片"于是,试着修改了一下,只需要一行代码解决图片和文字水印.首先引入Thinkphp的Image方法即可,而且支持中文水印. 1.前端模板:前端原图片和加过水印的图片显示对比<p class="notice red">原图:</p><img src="Public/images/

PHP学习笔记10-图片加水印

先找好一张图片,更名为face.jpeg,创建watermark.php: 1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Administrator 5 * Date: 2015/6/29 6 * Time: 22:27 7 */ 8 $img = imagecreatefromjpeg('face.jpeg');//根据已有的JPG创建image 9 header('Content-type:image/jpeg');//设置mime typ

ASP.NET图片上传,加水印文字和水印图片!

看了清清月儿的这篇文章让自己受益匪浅,但是觉得还有一些问题.上传图片后还有原来的图片文件存在,觉得这样很不爽,调用file类的delete方法删除原来没有生成水印的图片另外自己又加了一个限制图片大小的函数 1.最简单的单文件上传(没花头) 效果图:说明:这是最基本的文件上传,在asp.net1.x中没有这个FileUpload控件,只有html的上传控件,那时候要把html控件转化为服务器控件,很不好用.其实所有文件上传的美丽效果都是从这个FileUpload控件衍生,第一个例子虽然简单却是根本