您好,登錄后才能下訂單哦!
這篇文章主要介紹了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如何實現水印”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。