.NET加水印/驗證碼的NuGet包


.NET加水印/驗證碼的NuGet包 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 中國大陸許可協議 進行許可,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM