孫容海,林楚雄,劉國忠,俞春強(qiáng)
(1.廣西師范大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,桂林 541004;2.廣西桂平市木樂第一中學(xué),桂平 537202;3.廣西師范大學(xué)網(wǎng)絡(luò)中心,桂林 541004)
基于數(shù)字圖像的可見水印嵌入工具
孫容海1,林楚雄1,劉國忠2,俞春強(qiáng)3
(1.廣西師范大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,桂林541004;2.廣西桂平市木樂第一中學(xué),桂平537202;3.廣西師范大學(xué)網(wǎng)絡(luò)中心,桂林541004)
可見水印是保護(hù)數(shù)字圖像版權(quán)的一種有效技術(shù)。設(shè)計(jì)和開發(fā)一個(gè)基于數(shù)字圖像的可見水印嵌入工具。該工具是在Visual Studio 2013環(huán)境下開發(fā),使用的語言為C#,通過使用圖形設(shè)備接口(GDI+)實(shí)現(xiàn)為單幅圖像和多幅圖像嵌入文字可見水印或圖像可見水印的功能,可有效保護(hù)數(shù)字圖像版權(quán)。
數(shù)字圖像;水印;GDI+;C#
國家自然科學(xué)基金項(xiàng)目(No.61562007)、廣西高等學(xué)??蒲许?xiàng)目(No.KY2015LX006)
隨著互聯(lián)網(wǎng)技術(shù)和數(shù)字媒體信息化管理技術(shù)的發(fā)展,很多現(xiàn)實(shí)生活中的事物都轉(zhuǎn)化為數(shù)字媒體在互聯(lián)網(wǎng)上傳播。傳播過程中,未經(jīng)版權(quán)保護(hù)的數(shù)字媒體很容易被盜用而帶來很多負(fù)面影響。例如2015年11月中國科學(xué)網(wǎng)上發(fā)布:優(yōu)朋普樂科技有限公司工作人員在市場監(jiān)控時(shí)發(fā)現(xiàn),有不法公司盜用“優(yōu)朋普樂”、“優(yōu)朋影視”等標(biāo)識(shí)非法開展互聯(lián)網(wǎng)電視業(yè)務(wù)[1]。這是非常典型的違法行為。為了維護(hù)數(shù)字媒體版權(quán)擁有者的權(quán)利,應(yīng)該對(duì)數(shù)字媒體進(jìn)行版權(quán)保護(hù),因此本文設(shè)計(jì)和開發(fā)基于數(shù)字圖像的可見水印嵌入工具具有重要的應(yīng)用意義。該工具是在Visual Studio 2013環(huán)境[2]下開發(fā),使用的語言是C#[3],通過使用圖形設(shè)備接口(GDI+)[4]實(shí)現(xiàn)在數(shù)字圖像上嵌入文字可見水印或圖像可見水印的工具,可以對(duì)單幅圖像和多幅圖像進(jìn)行水印嵌入操作。下面詳細(xì)介紹該工具的系統(tǒng)功能、可見水印嵌入操作流程、嵌入水印的方法和測試結(jié)果。
本文設(shè)計(jì)的數(shù)字圖像可見水印嵌入工具的主要功能分為文字水印嵌入和圖像水印嵌入。圖1是該工具的功能模塊圖。各模塊的詳細(xì)功能介紹如下:(1)水印文字設(shè)置:當(dāng)水印信息為文字時(shí),先設(shè)置文字大小、顏色、字體以及文字水印在數(shù)字圖像中的位置,包括左上、左、左下、上、中、下、右上、右、右下九個(gè)位置可選;然后輸入作為水印的文字信息。(2)文字水印嵌入:將設(shè)置好的水印文字轉(zhuǎn)換為位圖,調(diào)用GDI+的繪制方法,把文字水印渲染到指定的數(shù)字圖像相應(yīng)位置上,從而實(shí)現(xiàn)文字水印的嵌入。(3)水印圖像設(shè)置:當(dāng)水印信息為圖像時(shí),先選中是否為圖像水印的選項(xiàng),然后設(shè)置水印圖像在要保護(hù)的數(shù)字圖像中的位置(與水印文字一樣有九個(gè)位置可選)和水印圖像的質(zhì)量和透明度。(4)圖像水印嵌入:與文字水印相似,將水印圖像轉(zhuǎn)化為位圖渲染到需要保護(hù)的數(shù)字圖像的指定位置上,完成可見水印的嵌入。
本文基于數(shù)字圖像的可見水印嵌入工具的水印嵌入流程如圖2所示。首先,選擇需要嵌入水印信息的數(shù)字圖像,可以是單幅圖像或多幅圖像。然后,判斷水印信息是否為圖像,如果是,則設(shè)置水印圖像在需要保護(hù)數(shù)字圖像上的位置、水印圖像質(zhì)量及水印圖像透明度;如果不是,則為文字水印,此時(shí)設(shè)置文字大小、文字顏色、文字字體、文字在圖像中的位置及文字水印的具體內(nèi)容。最后,根據(jù)所設(shè)置參數(shù)自動(dòng)進(jìn)行水印嵌入并可保存嵌入水印后的數(shù)字圖像。
圖1 功能模塊圖
根據(jù)數(shù)字水印內(nèi)容的不同,嵌入水印的方法分為文字水印嵌入和圖像水印嵌入兩類。
嵌入文字水印時(shí),首先將水印文字轉(zhuǎn)換為Bitmap位圖,使用MesasureString()方法根據(jù)設(shè)置好的水印文字參數(shù)獲得水印字符串圖像的寬度和高度。然后,通過需要嵌入水印的數(shù)字圖像的寬度和高度屬性及水印的位置參數(shù)來確定文字水印的位置坐標(biāo),同時(shí)將需要嵌入水印的數(shù)字圖像也轉(zhuǎn)換為Graphics類型[5]對(duì)象。最后,調(diào)用DrawImage()方法將水印文字嵌入到需要保護(hù)的數(shù)字圖像上。數(shù)據(jù)流圖如圖3所示。
嵌入圖像水印時(shí),首先將水印圖像轉(zhuǎn)換為Bitmap位圖,通過ColorMap[]重建位圖,通過顏色映射表和顏色矩陣調(diào)整水印圖像透明度。然后,根據(jù)設(shè)置的水印圖像位置計(jì)算其在需要嵌入水印的數(shù)字圖像中的位置坐標(biāo),同時(shí)將需要嵌入水印的數(shù)字圖像轉(zhuǎn)換為Graphics類型對(duì)象。最后,調(diào)用DrawImage()方法將水印圖像嵌
圖2 水印嵌入流程
入到需要保護(hù)的數(shù)字圖像上。數(shù)據(jù)流圖如圖4所示。
圖3 嵌入文字水印的數(shù)據(jù)流圖
圖4 嵌入圖像水印的數(shù)據(jù)流圖
在Visual Studio 2013集成環(huán)境實(shí)現(xiàn)可見水印嵌入功能后生成可執(zhí)行程序文件,運(yùn)行界面如圖5所示。主界面左側(cè)是圖像顯示區(qū),右側(cè)是水印信息參數(shù)設(shè)置面板。圖像顯示區(qū)由4個(gè)PictureBox控件組成,其中PictureBox1控件基本覆蓋左側(cè)區(qū)域,用于為單幅圖像嵌入水印時(shí)顯示圖像;另外三個(gè)PictureBox控件與PictureBox1疊放在同一區(qū)域,用于為多幅圖像嵌入水印時(shí)顯示圖像。其中PictureBox2較大,位于上半部分,PictureBox3、PictureBox4較小,水平放置于下半部分。為多幅需要保護(hù)的數(shù)字圖像嵌入水印時(shí),通過單擊下方圖像可以將被單擊圖像以較大尺寸顯示到上半部份,同時(shí),單擊左側(cè)圖像時(shí),圖像向左移動(dòng),單擊右側(cè)圖像時(shí)則向右移動(dòng),以便查看其他未在界面上顯示的圖像。參數(shù)設(shè)置面板從上到下依次為添加需要保護(hù)數(shù)字圖像的兩個(gè)Button控件,分別用于添加單幅圖像或多幅圖像;設(shè)置水印文字大小、顏色和字體的ComboBox控件和CheckBox控件;選擇水印嵌入位置的RadioButton控件;設(shè)置水印圖像質(zhì)量和透明度的Track-Bar控件;輸入文字水印內(nèi)容的TextBox控件;選擇水印類型的CheckBox控件;參數(shù)設(shè)置面板最下方的兩個(gè)Buttun控件,分別用于嵌入水印圖像和保存嵌入水印后的數(shù)字圖像。下面介紹水印的嵌入操作。
圖5 軟件運(yùn)行界面
圖6為單幅圖像嵌入文字水印的效果圖。首先單擊“添加單幅圖像”按鈕,選擇需要嵌入水印的“臺(tái)燈”圖像,然后設(shè)置水印文字大小、顏色、字體為默認(rèn)值、水印在數(shù)字圖像上的位置選擇左上角,同時(shí)輸入水印文字內(nèi)容為“廣西師范大學(xué)”,文字水印便自動(dòng)嵌入到臺(tái)燈圖像上,最后單擊“保存至”按鈕即可保存嵌入水印后的圖像。圖7是待嵌入的水印圖像“廣西師范大學(xué)?;铡?,圖8為單幅圖像嵌入該水印圖像后的效果圖。首先將水印類型選擇為圖像,即勾選“是否為圖像水印”多選框,并設(shè)置水印圖像的位置、圖像質(zhì)量和透明度,然后單擊“添加水印圖像”按鈕,選擇圖7所示圖像作為水印圖像,圖像水印即可按設(shè)定參數(shù)自動(dòng)嵌入到數(shù)字圖像指定位置,最后可手動(dòng)保存嵌入水印后的圖像。圖9為多幅圖像嵌入文字水印“廣西師范大學(xué)”的效果圖,圖10為多幅圖像嵌入圖7所示圖像作為水印圖像的效果圖。其操作與單幅圖像嵌入水印的過程類似,只是添加需要保護(hù)的圖像時(shí),是單擊“添加多幅圖像”按鈕,然后在打開的對(duì)話框中按住Ctrl鍵的同時(shí)選擇多幅圖像,這樣所有的添加圖像都會(huì)嵌入相同的水印。
圖6 單幅圖像嵌入文字水印
圖7 水印圖像
圖8 單幅圖像嵌入圖像水印
圖9 多幅圖像嵌入文字水印
圖10 多幅圖像嵌入圖像水印
本文設(shè)計(jì)和開發(fā)了一個(gè)基于數(shù)字圖像的可見水印嵌入工具。利用該工具可以很方便地為單幅圖像嵌入文字可見水印或圖像可見水印,也可以很方便地為多幅圖像嵌入文字可見水印或圖像可見水印。經(jīng)測試,利用該工具進(jìn)行文字水印嵌入和圖像水印嵌入操作簡單、方便,效果較好,具有較強(qiáng)的實(shí)際應(yīng)用價(jià)值。
[1]優(yōu)朋普樂關(guān)于“公司標(biāo)識(shí)被盜用”媒體公告.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程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,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-),男,湖南安化人,碩士,工程師,研究方向?yàn)閳D像處理,Email:ronghaisun@yeah.net
林楚雄(1992-),男,廣西岑溪人,本科生,研究方向?yàn)橛?jì)算機(jī)軟件
劉國忠(1975-),男,廣西桂平人,中學(xué)一級(jí)教師,從事領(lǐng)域?yàn)橛?jì)算機(jī)教育
俞春強(qiáng)(1988-),男,江西上饒人,碩士,助理研究員,研究方向?yàn)樾畔㈦[藏
2016-09-13
2016-11-13