自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET水印類整合水印技術(shù)

開發(fā) 后端
這里介紹如何創(chuàng)建一個VB.NET水印類(watermark)來實現(xiàn)使用一幅圖像或文字在原圖像上創(chuàng)造一幅水印圖。本文提供一個水印的VB.NET應(yīng)用程序及其完整的源代碼和類文件,您可通過運行該程序更為清楚地認識圖像水印技術(shù)。

在向大家詳細介紹VB.NET水印類之前,首先讓大家了解下水印技術(shù),然后全面介紹VB.NET水印類。本文解釋了如何創(chuàng)建一個VB.NET水印類(watermark)來實現(xiàn)使用一幅圖像或文字在原圖像上創(chuàng)造一幅水印圖。本文提供一個水印的VB.NET應(yīng)用程序及其完整的源代碼和類文件,您可通過運行該程序更為清楚地認識圖像水印技術(shù)。

圖像水印技術(shù)是一門使用文字或一幅圖像嵌入到另一幅圖像,使得原圖轉(zhuǎn)換為覆蓋圖的技術(shù)。因為從覆蓋圖中移除水印是一件相當(dāng)難的事情,需要很好的手工圖像編輯能力,所以水印技術(shù)通常用于商標(biāo)或版權(quán)的保護。不幸的是,微軟的.net框架沒有包含任何內(nèi)置的動態(tài)運行圖像水印的功能。

水印技術(shù)

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

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

因為所有需要的信息都在這些屬性中已經(jīng)設(shè)定好,所以主函數(shù)不需要其他的任何信息就可以創(chuàng)建一幅水印圖像。程序?qū)⒎祷匾粋€System.Drawing.Bitmap類型的實例。

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

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

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

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

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

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

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

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

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

【編輯推薦】

  1. 實例講述VB.NET使用Log4Net
  2. 三分鐘學(xué)會VB.NET轉(zhuǎn)換形態(tài)
  3. VB.NET獲取硬盤信息四大法寶
  4. 講述VB.NET調(diào)用Excel的好處
  5. 簡單例子概述VB.NET新窗體
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-10-20 09:39:04

VB.NET Butt

2010-01-12 16:20:44

VB.NET類

2009-10-13 14:50:59

VB.NET Envi

2009-10-20 17:38:54

VB.NET Comp

2009-10-23 14:06:07

VB.NET類對象

2009-10-15 10:57:16

VB.NET Text

2009-10-16 10:14:26

VB.NET使用Fil

2010-01-08 14:56:18

VB.NET類定義

2009-10-28 09:21:19

VB.NET技術(shù)

2010-01-07 15:57:02

VB.NET ForEach

2009-11-02 17:49:05

VB.NET抽象類

2010-01-22 15:37:02

VB.NET監(jiān)控類

2009-10-28 10:15:48

VB.NET框架類庫

2009-11-04 13:12:33

VB.NET繼承類

2009-10-22 09:20:46

VB.NET Proc

2009-07-29 16:06:42

圖片增加水印

2009-10-29 14:02:24

VB和VB.NET比較

2009-11-03 09:09:19

VB.NET類

2009-10-21 11:07:32

VB.NET類庫

2009-10-10 16:40:37

VB.NET Cont
點贊
收藏

51CTO技術(shù)棧公眾號