温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

VB.NET如何实现水印

发布时间:2021-12-02 10:51:11 来源:亿速云 阅读:330 作者:小新 栏目:编程语言

这篇文章主要介绍了VB.NET如何实现水印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

水印技术

VB.NET水印类(watermark)包含很多属性,可用于测定在原图像的哪个位置嵌入水印、使用哪种类型的水印(文字或图像)以及水印的精确信息等。

定义好utility 类之后,就可以构造我们的VB.NET水印类(watermark)。对于文字类型的水印,我们需要清楚使用什么文字及字体来创建这一水印。对于图像类型的水印,需要知道用于水印的图像的文件名。对于既包含文字又包含图像类型的水印,则需要知道原始图像文件的文件名和水印的位置。

因为所有需要的信息都在这些属性中已经设定好,所以主函数不需要其他的任何信息就可以创建一幅水印图像。程序将返回一个System.Drawing.Bitmap类型的实例。

水印程序在多线程环境下运行得非常理想。基于原图像和水印的程序可能占用很多的CPU运行时间。因此,将其放在后台运行,并将主程序放在前台执行可能会更好一点,这在水印程序是某一Web站点一部分的情况下尤为重要。例如,如果站点允许用户上传他们想要进行水印的图片时,我们需要一边继续运行网页的其余部分供用户使用,一边检测以确保水印图像已被创建。

水印的过程相当地简单。首先,我们创建一幅与原图大小相同的覆盖图,在需要的地方嵌入水印。水印可以是从一幅图片中加载,也可以是动态地创建想要的字体和文字。接着,检查覆盖图,搜索每一个像素点的颜色,显示其透明度。当我们找到一个像素点的颜色时,我们用其亮度值去创建一个乘法器。

这一乘法器系统可能使运行减慢,但是它能使水印图像随着原始图像色彩的改变而相应做出调整。同时,通过编辑源代码或者提供一个乘法器,我们就可以在与原始图像相同的像素点上设置与其原来颜色相应的颜色,但是这种颜色的红、绿、蓝分量都相应的乘上一个系数。因为这一系数是一个0-1之间的数,所以它将降低该像素点颜色的饱和度,使之呈现水印的效果。列表B包含了水印技术这一过程的主要处理代码。

下面代码值得注意,这是在创建像素点乘法器的时候使用到的。

PixelMultiplier = 1 - CSng(((1 - WatermarkPixel.GetBrightness)) * 0.25)

改变这行代码中的最终值(0.25)可以调整水印的强度。乘以0.25,水印的饱和度就被限定为原来的0%-25%。也就是说,如果水印图像颜色较暗淡,水印的效果将不太明显,最暗的颜色只能显示原色彩25%的强度。这一值不能低于0.0(显示不出水印效果)也不能高于 1.0(使要出现水印的地方都呈现白色)。

通过测试,我们发现使该值维持在0.2-0.3之间效果***。当然,我们可以将它设定为一个常数值,也可以修改代码使之在运行时动态地设定其大小。

测试水印技术应用程序

水印程序可以用于动态网页,或者用于编辑图像以实现业目的。通过使用一个VB.NET水印类(watermark),我们可以很容易地将水印技术整合到我们的应用系统中。下载安装整个应用程序便能产生水印图像。应用程序安装同样包含该应用程序的所有源代码和所有图像水印的类文件。我们可以很轻松地使用这些代码,将它们整合到我们自己的工程文件中,并修改它使之更加符合我们的需要。

感谢你能够认真阅读完这篇文章,希望小编分享的“VB.NET如何实现水印”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI