.NET加水印/验证码的NuGet包

.NET加水印/验证码的NuGet包

我的在前两篇文章(水印,验证码)中,我介绍了使用Direct2D给图片加水印/验证码,今天我将其进行了封装,发布了一个NuGet包Sdcb.Imaging

<PackageReference Include="Sdcb.Imaging" Version="1.1.0" />

或者在这个链接中下载:
https://www.nuget.org/packages/Sdcb.Imaging

.NET中给图片加水印

using (var imageStream = File.OpenRead(@"..\..\..\..\sample-images\src.png"))
using (var outputStream = File.OpenWrite(@"..\..\..\..\sample-images\watermark-test1.png"))
{
    WatermarkTool.WatermarkText(
        imageStream, outputStream,
        watermark: "Watermark here",
        font: "Times New Roman",
        fontSize: 30,
        colorARGB: 0x7f_FF_FF_FF); // 50% transparent white
}

其中,可以对字体(font),字体大小(fontSize),颜色(colorARGB)进行单独配置,原图如下:

添加水印之后的效果:

.NET中创建验证码

byte[] pngBytes = CaptchaTool.CreatePngImage(
    width: 200, height: 100,
    text: "CAPTCHA",
    font: "Times New Roman",
    fontSize: 50.0f,
    lineCount: 5,
    rotation: false,
    turbulenceAmount: 60.0f);
File.WriteAllBytes(
    @"..\..\..\..\sample-images\captcha-test1.png", pngBytes);

其中,可以对字体(font)、字体大小(fontSize)、随机线条数量(lineCount)、是否启用随机旋转(rotation)、水波移动量(turbulenceAmount)单独进行指定。

其中水波移动量(turbulenceAmount)可以为负数,表示向反方向移动。

验证码效果:

注意:

  • 验证码不适合使用无衬线字母,因为容易分不清数字1/字母I/字母小写l;

  • 验证码适合全大写,全大写更容易分清字母L。

  • 开启旋转则不适合使用英文,因为英文旋转后辨识度不高(可以用中文);


  • 水波移动量绝对值应该尽量低于100,否则人类也很难识别了。

作者:周杰

出处:https://www.cnblogs.com/sdflysha

本文采用
知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议
进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

原文地址:https://www.cnblogs.com/sdflysha/p/sdcb-imaging.html

时间: 2024-10-25 05:28:59

.NET加水印/验证码的NuGet包的相关文章

图片上传,图片加水印,验证码制作

文件上传: 所用控件:FileUpload 使用时的思路: 1.判断用户是否选中了文件 FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件 JS端:通过ID获取控件,然后控件的value获取选中的文件名 2.将文件保存到服务器上 FileUpload.SaveAs("绝对路径"); 3.获得绝对路径 先编写相对路径:比如"UpLoads/abc.txt" 再把路径映射成绝对路径:Server.MapPath(&quo

图片加水印 图片验证码

图片加水印 1   获取这张图片 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2 给图片加水印 Graphics g = Graphics.FromImage(img); string s = "WWW.ITNBA.COM";         s 给图片加的水印文字 Font f = new Font("微软雅黑", 30); Brush b

Python练习册--PIL处理图片之加水印

背景 最近在看到了Python 练习册,每天一个小程序 这个项目,非常有趣,也比较实用. 晚上看了这第000题,关于Python图片处理: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 之前没怎么使用过PIL库,在生成验证码及识别验证码时也需要了解这方面知识,就动手试了实践下. PIL The Python Imaging Library adds image processing capabilities to your Pyth

VS2013 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法 ZT

情景再现 使用VS2013新建ASP.NET MVC项目时,出现下面的错误: 具体错误信息: 错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”.有关此问题和如何启用此模板的详细信息,请参见有关“自定义项目模板”的文档. 分析错误 既然错误信息提示模板尝试加载组件程序集,那说明NuGet.VisualStudio.Inter

VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决

VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法 2014 年 5 月 3 日作者:mingceng 阅读次数:13,78812评论 情景再现 使用VS2012新建ASP.NET MVC项目时,出现下面的错误: 具体错误信息: 错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyTok

使用GUI工具高效构建你自己的Nuget包

写这篇文章的原因是我在学习构建nuget包的时候,发现了一个官方推荐的GUI工具,而官方的工具介绍文章已经过时,一些地方和现在最新版本的工具有些差异,所以特意利用假期最后一个下午写下来,希望能帮助更多的人.毕竟,在我看来,从事..NET开发的很多朋友,并不是特别迷恋命令行这种看起来高大上但是实际上并没有高效可言的东西(起码在Windows平台上是这样吧) 下载与安装 您可以导航到这里下载并在线安装这个工具包,我目前没有找到离线安装包,但是索性codeplex不像nuget那么惨,时不时的被-是吧

jxl创建excel加水印

最近做个excel加水印的,在网上找了很多,都是使用jxl添加,但是本地测试一直没有通过,主要原因是因为背景图片不符合要求,后来找了image4j来做成图片,完成了背景图片的添加,需要用到的jxl.jar包image4j.jar,具体代码如下: package com.file; import java.awt.AlphaComposite; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; imp

Thumbnails为图片加水印

在JAVA中使用Thumbnails为图片加水印 将D盘下面的cat.jpg作为水印加在2.jpg上面,输出新的图片2_cat.jpg到D盘下面 1.java类 import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Pos

Nuget包制作最佳解决方案

https://www.cnblogs.com/drea/p/8418717.html 最近研究ABP框架,下载其全套源码,想“据为己有”,这样添加功能或者修改源码的话就非常方便了,否则搭建项目直接用其官方的Nuget肯定是做不到的. 源码下好了,取其精华之处,编译完美运行,然后问题就来了,这么多类库,如何将他们全部做成Nuget包呢,之前从主管那得到了个制作Nuget包的神器(NuGetPackageExplorer.application),然而制作起来相当费劲,每次都要打开该软件,一个一个