多行文字水印的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字水印,更具體地說,涉及一種多行文字水印的制作方法。
【背景技術(shù)】
[0002] 數(shù)字水印(Digital Watermarking)技術(shù)是將一些標(biāo)識(shí)信息(即數(shù)字水?。┲苯?嵌入數(shù)字載體當(dāng)中(包括多媒體、文檔、軟件等)或是間接表示(修改特定區(qū)域的結(jié)構(gòu)),且 不影響原載體的使用價(jià)值,也不容易被探知和再次修改,但可以被生產(chǎn)方識(shí)別和辨認(rèn)。
[0003] 數(shù)字水印作為一種數(shù)字保護(hù)的手段,通過在電子文件上添加水印的方式,能為版 權(quán)信息的歸屬提供有力的證據(jù),同時(shí)還能起到監(jiān)視被保護(hù)數(shù)據(jù)的傳播、真?zhèn)舞b別以及非法 拷貝控制等作用。通過這些隱藏在載體中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購買者、傳送 隱秘信息或者判斷載體是否被篡改等目的。數(shù)字水印是保護(hù)信息安全、實(shí)現(xiàn)防偽溯源、版權(quán) 保護(hù)的有效辦法,是信息隱藏技術(shù)研究領(lǐng)域的重要分支和研究方向。
[0004] 對于電子文件添加多行文字水印,由于其排版布局、字體樣式等個(gè)性化定制信息 較多,這種復(fù)雜的水印實(shí)現(xiàn)起來較為困難,主要原因如下:
[0005] 1.多行文字水印需要對每行文字的字體、間距、大小、樣式、對齊方式等信息都可 以獨(dú)立設(shè)置。
[0006] 2.多行文字水印中的后續(xù)行文字起始位置需要根據(jù)前面行的文字位置進(jìn)行計(jì)算, 這涉及到前面行文字的字體、字號(hào)、行間距、對齊方式等因素影響。如果文字水印有旋轉(zhuǎn)角 度更為復(fù)雜。
[0007] 3.電子文件添加多行文字水印時(shí),需要根據(jù)水印被添加所在的位置和對齊方式, 計(jì)算水印的起始坐標(biāo)。
[0008] 4.不同的電子文件,比如PDF或JPG文件格式,在添加水印時(shí)的坐標(biāo)系統(tǒng)不同,導(dǎo) 致在以平鋪方式添加水印時(shí)的位置計(jì)算需要進(jìn)行坐標(biāo)轉(zhuǎn)換。
[0009] 綜合以上問題,截至目前業(yè)界中并未發(fā)現(xiàn)解決此問題的成熟方案,而本發(fā)明則正 是解決這一問題,通過統(tǒng)一的多行文字水印計(jì)算方法,實(shí)現(xiàn)不同電子文件添加多行文字水 印的解決方案。
[0010]目前業(yè)界中常見的對電子文件添加文字水印,文字水印一般只有一行文字。即使 有多行的文字水印也只能設(shè)置成為相同的字號(hào)、字體等。不能滿足復(fù)雜的需求。
【發(fā)明內(nèi)容】
[0011] 針對現(xiàn)有技術(shù)中存在的電子水印復(fù)雜度不高的問題,本發(fā)明的目的是提供一種多 行文字水印的制作方法。
[0012] 為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0013] -種多行文字水印的制作方法,包括以下步驟:步驟1,將多行文字轉(zhuǎn)換生成水印 圖片;步驟2,計(jì)算水印圖片的高度和寬度;步驟3,判斷待添加水印圖片的文件類型;步驟 4,根據(jù)文件類型,建立與文件類型相對應(yīng)的坐標(biāo)系;步驟5,將水印圖片添加到文件中。
[0014] 根據(jù)本發(fā)明的一實(shí)施例,步驟1進(jìn)一步包括以下步驟:步驟I. 1,計(jì)算多行文字實(shí) 際占用的區(qū)域大??;步驟1. 2,在水印圖片的背景上繪制多行文字;步驟1. 3,繪制完所有的 文字后,生成水印圖片。
[0015] 根據(jù)本發(fā)明的一實(shí)施例,步驟I. 1進(jìn)一步包括以下步驟:遍歷多行水印文字,根據(jù) 每一行獨(dú)立設(shè)定的字體、字號(hào),計(jì)算出單行文字實(shí)際占用的高度和寬度;重復(fù)以上操作,累 計(jì)單行文字占用的高度以及當(dāng)前行與下一行的行間距,計(jì)算文字行占用的最大寬度;設(shè)定 水印圖片的實(shí)際區(qū)域大??;根據(jù)計(jì)算的實(shí)際區(qū)域大小,生成水印圖片的背景。
[0016] 根據(jù)本發(fā)明的一實(shí)施例,步驟1. 2進(jìn)一步包括以下步驟:計(jì)算當(dāng)前行的繪制坐標(biāo), 其中每行文字的縱坐標(biāo)起始位置=上一行的行高+上一行的行間距;根據(jù)每行水印文字的 對齊方式繪制確定文字的橫坐標(biāo);重復(fù)以上操作,直至結(jié)束遍歷。
[0017] 根據(jù)本發(fā)明的一實(shí)施例,步驟2進(jìn)一步包括以下步驟:旋轉(zhuǎn)水印圖片;獲取旋轉(zhuǎn)后 的水印圖片占用外圍區(qū)域的四個(gè)頂點(diǎn)坐標(biāo);旋轉(zhuǎn)后區(qū)域?qū)挾?最大的頂點(diǎn)橫坐標(biāo)最小的頂 點(diǎn)橫坐標(biāo);旋轉(zhuǎn)后區(qū)域高度=最大的頂點(diǎn)縱坐標(biāo)最小的頂點(diǎn)縱坐標(biāo)。
[0018] 根據(jù)本發(fā)明的一實(shí)施例,步驟4進(jìn)一步包括以下步驟:對于pdf文件,其左下角為 坐標(biāo)原點(diǎn),向上方向?yàn)榭v向正坐標(biāo),向右方向?yàn)闄M向正坐標(biāo)。
[0019] 根據(jù)本發(fā)明的一實(shí)施例,步驟4進(jìn)一步包括以下步驟:對于jpg文件,其左上角為 坐標(biāo)原點(diǎn),向下方向?yàn)榭v向正坐標(biāo),向右方向?yàn)闄M向正坐標(biāo)。
[0020] 根據(jù)本發(fā)明的一實(shí)施例,步驟5進(jìn)一步包括以下步驟:指定水印間距,不指定水印 行列數(shù),則根據(jù)電子文件的坐標(biāo)原點(diǎn),按照行列間距重復(fù)繪制多行水印圖片。
[0021] 根據(jù)本發(fā)明的一實(shí)施例,步驟5進(jìn)一步包括以下步驟:指定水印行列數(shù),不指定水 印間距,則根據(jù)水印行數(shù)、列數(shù)及單頁的橫向、縱向尺寸,第一列水印圖片緊靠頁左邊,最后 一列水印圖片緊靠頁面右邊,第一行水印圖片緊靠頁面頂部,最后一行水印圖片緊靠頁面 底部,平鋪后的水印圖片占用區(qū)域與頁面區(qū)域相等。
[0022] 根據(jù)本發(fā)明的一實(shí)施例,步驟5進(jìn)一步包括以下步驟:既指定水印間距,也指定水 印行列數(shù),則以電子文件頁面的中心為坐標(biāo)原點(diǎn),向橫向和縱向外側(cè)進(jìn)行水印圖片的平鋪, 水印圖片根據(jù)設(shè)置進(jìn)行重復(fù)繪制,當(dāng)重復(fù)的列數(shù)和行數(shù)達(dá)到指定的數(shù)量時(shí)將不再進(jìn)行繪 制。
[0023] 在上述技術(shù)方案中,本發(fā)明的多行文字水印的制作方法實(shí)現(xiàn)了針對不同類型的電 子文件添加多行文字水印,并且文字水印中的每行文字都能支持字體樣式、字體大小、對齊 方式、行間距等不同設(shè)置。
【附圖說明】
[0024] 圖1是本發(fā)明多行文字水印的制作方法的流程圖;
[0025] 圖2是Sl的流程圖;
[0026] 圖3是水印旋轉(zhuǎn)的示意圖;
[0027] 圖4是只指定水印間距的效果圖;
[0028] 圖5是只指定水印行數(shù)的效果圖;
[0029] 圖6是間距和行列數(shù)都指定的效果圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖和實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。
[0031] 本發(fā)明的思路不是直接在電子文件上繪制多行文字水印,而是分成兩個(gè)問題進(jìn)行 解決。第一個(gè)問題是多行文字水印的實(shí)現(xiàn),第二個(gè)問題是電子文件上添加多行文字水印。因 此,參照圖1,本發(fā)明公開的多行文字水印的制作方法可以分為5個(gè)步驟,下面來進(jìn)一步詳 細(xì)說明。
[0032] Sl :將多行文字轉(zhuǎn)換生成水印圖片。如圖2所示,本步驟可以分解為SI. 1~SI. 3 三個(gè)子步驟。
[0033] SI. 1,計(jì)算多行文字實(shí)際占用的區(qū)域大小。具體來說,包括以下步驟:
[0034] 遍歷多行水印文字,根據(jù)每一行獨(dú)立設(shè)定的字體、字號(hào),計(jì)算出單行文字實(shí)際占用 的高度和寬度。
[0035] 重復(fù)以上操作,累計(jì)單行文字占用的高度以及當(dāng)前行與下一行的行間距,計(jì)算文 字行占用的最大寬度。
[0036] 設(shè)定水印圖片的實(shí)際區(qū)域大小,水印圖片的實(shí)際區(qū)域大小為:寬度=最大行的寬 度,高度=累計(jì)的高度。
[0037] 根據(jù)計(jì)算的實(shí)際區(qū)域大小,生成水印圖片的背景。
[0038] SI. 2,通過遍歷多行水印文字,逐行繪制每行文字,從而在水印圖片的背景上繪制 多行文字。具體來說,包括以下步驟:
[0039] 計(jì)算當(dāng)前行的繪制坐標(biāo),其中每行文字的縱坐標(biāo)起始位置=上一行的行高+上一 行的行間距。
[0040] 根據(jù)每行水印文字的對齊方式繪制確定文字的橫坐標(biāo),即繪制文字信息至固化圖 片(水印圖片的背景)上。
[0041] 重復(fù)以上操作,直至結(jié)束遍歷。
[0042] SL 3,繪制完所有的文字后,生成水印圖片。
[0043] S2 :計(jì)算水印圖片的高度和寬度,具體來說,分為以下幾個(gè)步驟:
[0044] 旋轉(zhuǎn)水印圖片;