孫容海,林楚雄,劉國忠,俞春強
(1.廣西師范大學計算機科學與信息工程學院,桂林 541004;2.廣西桂平市木樂第一中學,桂平 537202;3.廣西師范大學網絡中心,桂林 541004)
基于數字圖像的可見水印嵌入工具
孫容海1,林楚雄1,劉國忠2,俞春強3
(1.廣西師范大學計算機科學與信息工程學院,桂林541004;2.廣西桂平市木樂第一中學,桂平537202;3.廣西師范大學網絡中心,桂林541004)
可見水印是保護數字圖像版權的一種有效技術。設計和開發一個基于數字圖像的可見水印嵌入工具。該工具是在Visual Studio 2013環境下開發,使用的語言為C#,通過使用圖形設備接口(GDI+)實現為單幅圖像和多幅圖像嵌入文字可見水印或圖像可見水印的功能,可有效保護數字圖像版權。
數字圖像;水印;GDI+;C#
國家自然科學基金項目(No.61562007)、廣西高等學校科研項目(No.KY2015LX006)
隨著互聯網技術和數字媒體信息化管理技術的發展,很多現實生活中的事物都轉化為數字媒體在互聯網上傳播。傳播過程中,未經版權保護的數字媒體很容易被盜用而帶來很多負面影響。例如2015年11月中國科學網上發布:優朋普樂科技有限公司工作人員在市場監控時發現,有不法公司盜用“優朋普樂”、“優朋影視”等標識非法開展互聯網電視業務[1]。這是非常典型的違法行為。為了維護數字媒體版權擁有者的權利,應該對數字媒體進行版權保護,因此本文設計和開發基于數字圖像的可見水印嵌入工具具有重要的應用意義。該工具是在Visual Studio 2013環境[2]下開發,使用的語言是C#[3],通過使用圖形設備接口(GDI+)[4]實現在數字圖像上嵌入文字可見水印或圖像可見水印的工具,可以對單幅圖像和多幅圖像進行水印嵌入操作。下面詳細介紹該工具的系統功能、可見水印嵌入操作流程、嵌入水印的方法和測試結果。
本文設計的數字圖像可見水印嵌入工具的主要功能分為文字水印嵌入和圖像水印嵌入。圖1是該工具的功能模塊圖。各模塊的詳細功能介紹如下:(1)水印文字設置:當水印信息為文字時,先設置文字大小、顏色、字體以及文字水印在數字圖像中的位置,包括左上、左、左下、上、中、下、右上、右、右下九個位置可選;然后輸入作為水印的文字信息。(2)文字水印嵌入:將設置好的水印文字轉換為位圖,調用GDI+的繪制方法,把文字水印渲染到指定的數字圖像相應位置上,從而實現文字水印的嵌入。(3)水印圖像設置:當水印信息為圖像時,先選中是否為圖像水印的選項,然后設置水印圖像在要保護的數字圖像中的位置(與水印文字一樣有九個位置可選)和水印圖像的質量和透明度。(4)圖像水印嵌入:與文字水印相似,將水印圖像轉化為位圖渲染到需要保護的數字圖像的指定位置上,完成可見水印的嵌入。
本文基于數字圖像的可見水印嵌入工具的水印嵌入流程如圖2所示。首先,選擇需要嵌入水印信息的數字圖像,可以是單幅圖像或多幅圖像。然后,判斷水印信息是否為圖像,如果是,則設置水印圖像在需要保護數字圖像上的位置、水印圖像質量及水印圖像透明度;如果不是,則為文字水印,此時設置文字大小、文字顏色、文字字體、文字在圖像中的位置及文字水印的具體內容。最后,根據所設置參數自動進行水印嵌入并可保存嵌入水印后的數字圖像。

圖1 功能模塊圖
根據數字水印內容的不同,嵌入水印的方法分為文字水印嵌入和圖像水印嵌入兩類。
嵌入文字水印時,首先將水印文字轉換為Bitmap位圖,使用MesasureString()方法根據設置好的水印文字參數獲得水印字符串圖像的寬度和高度。然后,通過需要嵌入水印的數字圖像的寬度和高度屬性及水印的位置參數來確定文字水印的位置坐標,同時將需要嵌入水印的數字圖像也轉換為Graphics類型[5]對象。最后,調用DrawImage()方法將水印文字嵌入到需要保護的數字圖像上。數據流圖如圖3所示。
嵌入圖像水印時,首先將水印圖像轉換為Bitmap位圖,通過ColorMap[]重建位圖,通過顏色映射表和顏色矩陣調整水印圖像透明度。然后,根據設置的水印圖像位置計算其在需要嵌入水印的數字圖像中的位置坐標,同時將需要嵌入水印的數字圖像轉換為Graphics類型對象。最后,調用DrawImage()方法將水印圖像嵌

圖2 水印嵌入流程
入到需要保護的數字圖像上。數據流圖如圖4所示。

圖3 嵌入文字水印的數據流圖

圖4 嵌入圖像水印的數據流圖
在Visual Studio 2013集成環境實現可見水印嵌入功能后生成可執行程序文件,運行界面如圖5所示。主界面左側是圖像顯示區,右側是水印信息參數設置面板。圖像顯示區由4個PictureBox控件組成,其中PictureBox1控件基本覆蓋左側區域,用于為單幅圖像嵌入水印時顯示圖像;另外三個PictureBox控件與PictureBox1疊放在同一區域,用于為多幅圖像嵌入水印時顯示圖像。其中PictureBox2較大,位于上半部分,PictureBox3、PictureBox4較小,水平放置于下半部分。為多幅需要保護的數字圖像嵌入水印時,通過單擊下方圖像可以將被單擊圖像以較大尺寸顯示到上半部份,同時,單擊左側圖像時,圖像向左移動,單擊右側圖像時則向右移動,以便查看其他未在界面上顯示的圖像。參數設置面板從上到下依次為添加需要保護數字圖像的兩個Button控件,分別用于添加單幅圖像或多幅圖像;設置水印文字大小、顏色和字體的ComboBox控件和CheckBox控件;選擇水印嵌入位置的RadioButton控件;設置水印圖像質量和透明度的Track-Bar控件;輸入文字水印內容的TextBox控件;選擇水印類型的CheckBox控件;參數設置面板最下方的兩個Buttun控件,分別用于嵌入水印圖像和保存嵌入水印后的數字圖像。下面介紹水印的嵌入操作。

圖5 軟件運行界面
圖6為單幅圖像嵌入文字水印的效果圖。首先單擊“添加單幅圖像”按鈕,選擇需要嵌入水印的“臺燈”圖像,然后設置水印文字大小、顏色、字體為默認值、水印在數字圖像上的位置選擇左上角,同時輸入水印文字內容為“廣西師范大學”,文字水印便自動嵌入到臺燈圖像上,最后單擊“保存至”按鈕即可保存嵌入水印后的圖像。圖7是待嵌入的水印圖像“廣西師范大學校徽”,圖8為單幅圖像嵌入該水印圖像后的效果圖。首先將水印類型選擇為圖像,即勾選“是否為圖像水印”多選框,并設置水印圖像的位置、圖像質量和透明度,然后單擊“添加水印圖像”按鈕,選擇圖7所示圖像作為水印圖像,圖像水印即可按設定參數自動嵌入到數字圖像指定位置,最后可手動保存嵌入水印后的圖像。圖9為多幅圖像嵌入文字水印“廣西師范大學”的效果圖,圖10為多幅圖像嵌入圖7所示圖像作為水印圖像的效果圖。其操作與單幅圖像嵌入水印的過程類似,只是添加需要保護的圖像時,是單擊“添加多幅圖像”按鈕,然后在打開的對話框中按住Ctrl鍵的同時選擇多幅圖像,這樣所有的添加圖像都會嵌入相同的水印。

圖6 單幅圖像嵌入文字水印

圖7 水印圖像

圖8 單幅圖像嵌入圖像水印

圖9 多幅圖像嵌入文字水印

圖10 多幅圖像嵌入圖像水印
本文設計和開發了一個基于數字圖像的可見水印嵌入工具。利用該工具可以很方便地為單幅圖像嵌入文字可見水印或圖像可見水印,也可以很方便地為多幅圖像嵌入文字可見水印或圖像可見水印。經測試,利用該工具進行文字水印嵌入和圖像水印嵌入操作簡單、方便,效果較好,具有較強的實際應用價值。
[1]優朋普樂關于“公司標識被盜用”媒體公告.http://science.china.com.cn/2015-11/16/content_8379417.htm.2015-11-16.
[2]Bruce Johnson.Professional Visual Studio 2013[M].John Wiley&Sons,Inc.,Indianapolis,Indiana,2014.
[3]Joseph Albahari and Ben Albahari.C#5.0 in a Nutshell(5th Edition)[M].O'Reilly Media,2012.
[4]朱付保,段趙磊,李燦林.精通C#4.0程序設計[M].北京:清華大學出版社,2014.
[5]Graphics類(System.Drawing).https://msdn.microsoft.com/query/dev14.query,2016.
Digital Image;Watermarking;GDI+;C#
Visual Watermarking Tool Based on Digital Image
SUN Rong-hai1,LIN Chu-xiong1,LIU Guo-zhong2,YU Chun-qiang3
(1.College of Computer Science and Information Technology,Guangxi Normal University,Guilin 541004 2.No.1 Middle School of Mule in Guiping city of Guangxi,Guiping 537202 3.Network Center,Guangxi Normal University,Guilin 541004)
Visible watermark is an efficient technique for protecting copyright of digital images.Designs and develops a visual watermarking tool based on digital image.This tool is developed in Visual Studio 2013 and the programming language is C#.It embeds visible text watermark or visible image watermark into one or several images by GDI+and can efficiently protect copyright of digital images.
1007-1423(2016)32-0058-04
10.3969/j.issn.1007-1423.2016.32.013
孫容海(1971-),男,湖南安化人,碩士,工程師,研究方向為圖像處理,Email:ronghaisun@yeah.net
林楚雄(1992-),男,廣西岑溪人,本科生,研究方向為計算機軟件
劉國忠(1975-),男,廣西桂平人,中學一級教師,從事領域為計算機教育
俞春強(1988-),男,江西上饒人,碩士,助理研究員,研究方向為信息隱藏
2016-09-13
2016-11-13