溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VB.NET如何實(shí)現(xiàn)水印

發(fā)布時(shí)間:2021-12-02 10:51:11 來源:億速云 閱讀:333 作者:小新 欄目:編程語言

這篇文章主要介紹了VB.NET如何實(shí)現(xiàn)水印,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

水印技術(shù)

VB.NET水印類(watermark)包含很多屬性,可用于測定在原圖像的哪個(gè)位置嵌入水印、使用哪種類型的水?。ㄎ淖只驁D像)以及水印的精確信息等。

定義好utility 類之后,就可以構(gòu)造我們的VB.NET水印類(watermark)。對于文字類型的水印,我們需要清楚使用什么文字及字體來創(chuàng)建這一水印。對于圖像類型的水印,需要知道用于水印的圖像的文件名。對于既包含文字又包含圖像類型的水印,則需要知道原始圖像文件的文件名和水印的位置。

因?yàn)樗行枰男畔⒍荚谶@些屬性中已經(jīng)設(shè)定好,所以主函數(shù)不需要其他的任何信息就可以創(chuàng)建一幅水印圖像。程序?qū)⒎祷匾粋€(gè)System.Drawing.Bitmap類型的實(shí)例。

水印程序在多線程環(huán)境下運(yùn)行得非常理想。基于原圖像和水印的程序可能占用很多的CPU運(yùn)行時(shí)間。因此,將其放在后臺(tái)運(yùn)行,并將主程序放在前臺(tái)執(zhí)行可能會(huì)更好一點(diǎn),這在水印程序是某一Web站點(diǎn)一部分的情況下尤為重要。例如,如果站點(diǎn)允許用戶上傳他們想要進(jìn)行水印的圖片時(shí),我們需要一邊繼續(xù)運(yùn)行網(wǎng)頁的其余部分供用戶使用,一邊檢測以確保水印圖像已被創(chuàng)建。

水印的過程相當(dāng)?shù)睾唵巍J紫?,我們?chuàng)建一幅與原圖大小相同的覆蓋圖,在需要的地方嵌入水印。水印可以是從一幅圖片中加載,也可以是動(dòng)態(tài)地創(chuàng)建想要的字體和文字。接著,檢查覆蓋圖,搜索每一個(gè)像素點(diǎn)的顏色,顯示其透明度。當(dāng)我們找到一個(gè)像素點(diǎn)的顏色時(shí),我們用其亮度值去創(chuàng)建一個(gè)乘法器。

這一乘法器系統(tǒng)可能使運(yùn)行減慢,但是它能使水印圖像隨著原始圖像色彩的改變而相應(yīng)做出調(diào)整。同時(shí),通過編輯源代碼或者提供一個(gè)乘法器,我們就可以在與原始圖像相同的像素點(diǎn)上設(shè)置與其原來顏色相應(yīng)的顏色,但是這種顏色的紅、綠、藍(lán)分量都相應(yīng)的乘上一個(gè)系數(shù)。因?yàn)檫@一系數(shù)是一個(gè)0-1之間的數(shù),所以它將降低該像素點(diǎn)顏色的飽和度,使之呈現(xiàn)水印的效果。列表B包含了水印技術(shù)這一過程的主要處理代碼。

下面代碼值得注意,這是在創(chuàng)建像素點(diǎn)乘法器的時(shí)候使用到的。

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

改變這行代碼中的最終值(0.25)可以調(diào)整水印的強(qiáng)度。乘以0.25,水印的飽和度就被限定為原來的0%-25%。也就是說,如果水印圖像顏色較暗淡,水印的效果將不太明顯,最暗的顏色只能顯示原色彩25%的強(qiáng)度。這一值不能低于0.0(顯示不出水印效果)也不能高于 1.0(使要出現(xiàn)水印的地方都呈現(xiàn)白色)。

通過測試,我們發(fā)現(xiàn)使該值維持在0.2-0.3之間效果***。當(dāng)然,我們可以將它設(shè)定為一個(gè)常數(shù)值,也可以修改代碼使之在運(yùn)行時(shí)動(dòng)態(tài)地設(shè)定其大小。

測試水印技術(shù)應(yīng)用程序

水印程序可以用于動(dòng)態(tài)網(wǎng)頁,或者用于編輯圖像以實(shí)現(xiàn)業(yè)目的。通過使用一個(gè)VB.NET水印類(watermark),我們可以很容易地將水印技術(shù)整合到我們的應(yīng)用系統(tǒng)中。下載安裝整個(gè)應(yīng)用程序便能產(chǎn)生水印圖像。應(yīng)用程序安裝同樣包含該應(yīng)用程序的所有源代碼和所有圖像水印的類文件。我們可以很輕松地使用這些代碼,將它們整合到我們自己的工程文件中,并修改它使之更加符合我們的需要。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“VB.NET如何實(shí)現(xiàn)水印”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI