專利名稱:二值圖打印數(shù)據(jù)的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及向打印機(jī)輸出的打印數(shù)據(jù),特別涉及打印二值圖時,處理需要 打印的數(shù)據(jù)的方法。
背景技術(shù):
電子文檔在打印輸出的時候,文字、圖形和圖像是最基本的元素,在大部
分情況下,文字都可以看作是一幅單色的位圖;而圖像中,也有4艮多單色圖的 存在,比如公文中的公章,在圖像中只有一種顏色。以上所述的電子文檔中, 打印時每個像素都只能取兩個可能的圖像值,這種圖像(包括打印的文字)被 稱為二值圖,在輸出打印數(shù)據(jù)時都可以歸結(jié)到二值圖的處理范疇。
對于具有透明效果的二值圖進(jìn)行打印時,需要對每個像素進(jìn)行透明處理, 例如將圖1中的圖像與另一份文件同時打印到一張紙上時,相當(dāng)于圖l中的 圖像和另 一份文件處于不同的兩層,需要對兩層上圖像上的每個像素進(jìn)行比較, 得出每一個像素實(shí)際打印效果,即結(jié)果位圖。
如果直接使用系統(tǒng)提供的繪制函數(shù)接口 (比如在Windows操作系統(tǒng)中利用 系統(tǒng)提供的API直接往打印機(jī)輸出二值圖的打印數(shù)據(jù)),需要將每一個像素的數(shù) 據(jù)都傳輸?shù)酱蛴C(jī),這樣傳輸?shù)臄?shù)據(jù)量巨大;在需要做透明處理時,打印機(jī)還 需要進(jìn)行每個像素的透明計算,圖像的打印數(shù)據(jù)量和計算量將進(jìn)一步增大,導(dǎo) 致打印速度緩慢,無法滿足正常的打印需求。
針對上述透明打印所需要傳輸?shù)臄?shù)據(jù)量較大的問題,比較常見的解決辦法 是通過計算機(jī)直接計算出透明后的結(jié)果位圖,然后將這個結(jié)果位圖的打印數(shù)據(jù) 傳輸?shù)酱蛴C(jī)打印,這樣打印機(jī)就不需要進(jìn)行透明效果的處理了,可直接打印 結(jié)果位圖。這種方法雖然可以繞過在打印機(jī)上直接進(jìn)行透明打印的步驟,但是 直接計算透明后的結(jié)杲位圖,需要對每一位像素進(jìn)行計算,往往要消耗很多的 計算機(jī)資源。
發(fā)明內(nèi)容
本發(fā)明提供一種二值圖打印數(shù)據(jù)的處理方法,在需要打印透明效果的二值
圖像時,簡化了計算機(jī)打印操作,減少了需要傳輸?shù)臄?shù)據(jù)量,從而在使用較少 計算機(jī)資源的情況下提高打印速度。
為達(dá)到上述目的,本發(fā)明的采用如下技術(shù)方案該二值圖打印數(shù)據(jù)的處理 方法包括
根據(jù)二值圖的原始數(shù)據(jù)生成對應(yīng)的梯度數(shù)據(jù); 掃描所述梯度數(shù)據(jù),得到需要打印的填充區(qū)域; 將所述的填充區(qū)域輸出到打印機(jī)。 所述的二值圖原始數(shù)據(jù)包括像素的坐標(biāo)和像素的顏色值。 所述梯度數(shù)據(jù)包括像素的坐標(biāo)和像素的梯度值,所述梯度值按如下方式生
成
如果二值圖中像素的坐標(biāo)為圖像的最右側(cè)區(qū)域,則該像素的梯度值等于該 像素的顏色值;
如果二值圖中的像素的顏色值小于其右側(cè)像素的顏色值,則該像素的梯度 值取為正梯度;
如果二值圖中的像素的顏色值大于其右側(cè)像素的顏色值,則該像素的梯度 值取為負(fù)梯度;
如果二值圖中的像素的顏色值等于其右側(cè)像素的顏色值,則該像素的梯度 值取為0。
所述掃描所述梯度數(shù)據(jù),得到需要打印的填充區(qū)域具體為 依次記錄梯度數(shù)據(jù)中兩個相鄰正梯度的坐標(biāo)和負(fù)梯度的坐標(biāo),并保存為區(qū)
間;
將所有區(qū)間合并,得到需要打印的填充區(qū)域。
所述正梯度坐標(biāo)右側(cè)相鄰點(diǎn)的坐標(biāo)為區(qū)間的起點(diǎn),所述負(fù)梯度的坐標(biāo)為區(qū) 間的終點(diǎn)。
所述顏色值為0或1;所述正梯度為1,所述負(fù)梯度為-l。 相對于現(xiàn)有技術(shù)中通過計算機(jī)來直接計算出透明后的結(jié)果位圖而言,本發(fā) 明二值圖打印數(shù)據(jù)的處理方法不需要對每個像素進(jìn)行透明計算,只需要得出需
要打印的填充區(qū)域,省去了透明計算這一龐大的計算量,節(jié)約了硬件資源(包 括計算機(jī)資源和打印機(jī)資源)。
本發(fā)明通過對二值圖的原始數(shù)據(jù)進(jìn)行橫向掃描獲得其梯度數(shù)據(jù),再通過對 梯度數(shù)據(jù)的分析,將復(fù)雜的透明打印區(qū)域轉(zhuǎn)換為相對簡單且可以直接打印的填 充區(qū)域,從而將透明打印轉(zhuǎn)化為普通打印操作。并且,本發(fā)明只需要計算出實(shí) 際打印的區(qū)域,對于圖像中不需要打印的部分,則直接去除,則不會生成向打 印機(jī)傳輸?shù)臄?shù)據(jù),最后生成數(shù)據(jù)量比較小而簡單的填充區(qū)域,可以減少打印時 向打印機(jī)傳輸?shù)臄?shù)據(jù)量,從而達(dá)到了提高打印速度的目的。
相對于現(xiàn)有技術(shù)中通過計算機(jī)來直接計算出透明后的結(jié)果位圖而言,所需 要的計算機(jī)資源相對較少,只需要對二值圖和梯度數(shù)據(jù)分別遍歷 一次即可完成 填充區(qū)域的計算,并不需要對每個像素進(jìn)行透明效果的數(shù)據(jù)計算,節(jié)省了很多 計算機(jī)資源。
圖1為待打印二值圖的樣例圖2為圖1的具體顏色值示意圖,其中l(wèi)表示黑色,0表示白色; 圖3為掃描圖2對應(yīng)的梯度圖得到的梯度值示意圖; 圖4為掃描梯度圖并得到填充區(qū)域的具體流程圖。
具體實(shí)施例方式
本發(fā)明二值圖打印數(shù)據(jù)的處理方法,通過對二值圖的原始數(shù)據(jù)進(jìn)行橫向掃 描獲得其梯度數(shù)據(jù),由多個連續(xù)多個梯度數(shù)據(jù)組成一幅梯度圖,再通過對梯度 圖的分析,將復(fù)雜的透明打印區(qū)域轉(zhuǎn)換為相對簡單且可以直接打印的填充區(qū)域。
下面結(jié)合附圖和實(shí)施例對本發(fā)明二值圖打印數(shù)據(jù)的處理方法詳細(xì)描述。
在本實(shí)施例中,需要打印的圖像如圖1所示,在圖像中只有中間的黑色部 分需要打印,其他部分為空白,為了方便計算機(jī)的讀取和識別,在其二值圖上 一般用l表示黑色,0表示白色。故而,假若以像素的顏色值來表示圖1,那么 其像素對應(yīng)的二值圖如圖2所示,而每一個像素所在的位置可以通過該位置的 坐標(biāo)來表示, 一般用坐標(biāo)的x軸來表示圖像的橫向坐標(biāo),y軸來表示圖像的縱向 坐標(biāo),i己為(x, y)。
本發(fā)明在處理二值圖的打印數(shù)據(jù)時,具體需要執(zhí)行如下步驟
根據(jù)二值圖的原始數(shù)據(jù)生成對應(yīng)的梯度數(shù)據(jù),其中,二值圖原始數(shù)據(jù)是指
圖2中對應(yīng)每個像素的坐標(biāo)值和顏色值。而生成的梯度數(shù)據(jù)包括梯度值,并且 還是用原來圖2中像素的坐標(biāo)來描述梯度值的位置。 下面具體描述梯度值的生成過程。
掃描圖2中的每一個像素,假若當(dāng)前像素的坐標(biāo)為(x, y),首先通過該像 素的坐標(biāo)值來判斷該像素是否為圖像最右側(cè)的區(qū)域,如果該像素的坐標(biāo)為圖像 的最右側(cè)區(qū)域,則該像素的梯度值等于該像素的顏色值;如果該像素的坐標(biāo)不 是圖像的最右側(cè)區(qū)域,那么按照如下規(guī)則給梯度值賦值
如果二值圖中的像素的顏色值小于其右側(cè)像素的顏色值,即(x, y)處的
顏色值為0,而(x, y+l)處的顏色值為l,則該像素的梯度取為正梯度,以數(shù) 值1來表示。
如果二值圖中的像素的顏色值大于其右側(cè)像素的顏色值,即(x, y)處的 顏色值為l,而(x, y+l)處的顏色值為0,則該像素的梯度取為負(fù)梯度,,以 數(shù)值-1來表示;
如果二值圖中的像素的顏色值等于其右側(cè)像素的顏色值,即(x, y)處的 顏色值為1,而(x, y+l)處的顏色值也為1;或者(x, y)處的顏色值為0, 而(x, y+l)處的顏色值也為0;那么該像素的梯度值取為0。
經(jīng)過上述掃描過程,將為每一個像素點(diǎn)生成一個梯度值,本實(shí)施例中對應(yīng) 圖2的剃度圖如圖3所示。
得到圖3所示的梯度圖后,對其進(jìn)行掃描并得到需要打印的填充區(qū)域,其 具體過程如圖4所示
401、 讀入如圖3所示的梯度圖數(shù)據(jù),包括每個點(diǎn)的坐標(biāo)和梯度值,并將當(dāng) 前行指針指向該梯度圖數(shù)據(jù)的第 一行。
402、 從行指針位置讀取一行數(shù)據(jù),并設(shè)置當(dāng)前點(diǎn)指針指向當(dāng)前行起點(diǎn),一 般通過該點(diǎn)的坐標(biāo)來表示其位置。
403、 讀取當(dāng)前點(diǎn)坐標(biāo)指針中的數(shù)據(jù)。
404、 分析當(dāng)前點(diǎn)坐標(biāo)指針中的數(shù)據(jù)如果當(dāng)前點(diǎn)坐標(biāo)指針中的數(shù)據(jù)為0, 則執(zhí)行步驟407;如果當(dāng)前點(diǎn)坐標(biāo)指針中的數(shù)據(jù)為1,即該點(diǎn)的梯度為正梯度, 則執(zhí)行步驟405;如果當(dāng)前點(diǎn)坐標(biāo)指針中的數(shù)據(jù)為-l,即該點(diǎn)的梯度為負(fù)梯度,
則執(zhí)行步驟406。
405、 存儲當(dāng)前點(diǎn)右側(cè)點(diǎn)的坐標(biāo)為一個區(qū)間的起點(diǎn),如果當(dāng)前點(diǎn)坐標(biāo)為(x, y),則存儲點(diǎn)(x+l, y)為一個區(qū)間的起點(diǎn),并執(zhí)行步驟407。
406、 存儲當(dāng)前點(diǎn)坐標(biāo)為一個區(qū)間的終點(diǎn),如果當(dāng)前點(diǎn)坐標(biāo)為(x, y),貝寸 存儲點(diǎn)(x, y)為一個區(qū)間的終點(diǎn),并執(zhí)行步驟407。
407、 當(dāng)前坐標(biāo)點(diǎn)指針右移一位,即將(x+l, y)作為當(dāng)前點(diǎn)坐標(biāo) 判斷(x+l, y)是否為圖像最右側(cè)的區(qū)域,即,當(dāng)前點(diǎn)是否為當(dāng)前行的末
尾;如果到達(dá)當(dāng)前行數(shù)據(jù)末尾,則進(jìn)入步驟408;如果沒有到達(dá)當(dāng)前行數(shù)據(jù)末尾, 則進(jìn)入步驟403。
408、 當(dāng)前行指針下移一行,然后判斷是否到達(dá)梯度圖的數(shù)據(jù)末尾,如果到 達(dá)梯度圖數(shù)據(jù)末尾,則執(zhí)行步驟409;如果沒有到達(dá)梯度圖數(shù)據(jù)末尾,則執(zhí)行步 驟402。
409、 將所有由起點(diǎn)和終點(diǎn)描述的區(qū)間合并, 一起保存為填充區(qū)域,以便輸 出到打印機(jī)進(jìn)行打印。
將上面步驟中獲取的填充區(qū)域發(fā)送到打印機(jī),進(jìn)行打印。
在上述實(shí)施例中,通過對二值圖的原始數(shù)據(jù)進(jìn)行橫向掃描獲得其梯度圖, 再通過對梯度圖的分析,將復(fù)雜的打印區(qū)域轉(zhuǎn)換為相對簡單且可以直接打印的 填充區(qū)域。并且,本發(fā)明只需要計算出實(shí)際打印的區(qū)域,對于圖像中不需要打 印的部分,則直接去除,則不會生成向打印機(jī)傳輸?shù)臄?shù)據(jù),最后生成數(shù)據(jù)量比 較小而簡單的填充區(qū)域,可以減少打印時向打印機(jī)傳輸?shù)臄?shù)據(jù)量,從而達(dá)到了 提高打印速度的目的。
由于在步驟405和步驟406中只需要記錄區(qū)間的首末位置,這樣一來需要 保存的數(shù)據(jù)量將進(jìn)一步減少,以提高打印速度。
當(dāng)將圖l上的圖像和另一份文件同時打印時,在圖1白色部分是作為另一 份文件的透明部分,采用本發(fā)明后,不需要將圖l和另一份文件上對應(yīng)的每個 像素進(jìn)行比較來得出實(shí)際打印效果,只需要按照本發(fā)明的方法將另一份文件的 打印區(qū)域輸出到打印機(jī),然后將圖1中的打印區(qū)域輸出到打印機(jī),而沒有打印 的區(qū)域就可以直接實(shí)現(xiàn)透明效果。所以,采用本發(fā)明后能夠節(jié)省了很多計算機(jī) 資源或者打印機(jī)資源。本發(fā)明主要用在能夠轉(zhuǎn)化為二值圖進(jìn)行打印輸出的場合中,包括一般的黑 白打印,彩打中的單色圖打印等。
以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng) 該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種二值圖打印數(shù)據(jù)的處理方法,其特征在于包括根據(jù)二值圖的原始數(shù)據(jù)生成對應(yīng)的梯度數(shù)據(jù);掃描所述梯度數(shù)據(jù),得到需要打印的填充區(qū)域;將所述的填充區(qū)域輸出到打印機(jī)。
2、 根據(jù)權(quán)利要求1所述的二值圖打印數(shù)據(jù)的處理方法,其特征在于,所述 的二值圖原始數(shù)據(jù)包括像素的坐標(biāo)和像素的顏色值。
3、 根據(jù)權(quán)利要求2所述的二值圖打印數(shù)據(jù)的處理方法,其特征在于所述 梯度數(shù)據(jù)包括像素的坐標(biāo)和像素的梯度值,所述梯度值按如下方式生成如果二值圖中像素的坐標(biāo)為圖像的最右側(cè)區(qū)域,則該像素的梯度值等于該像素的顏色值;如果二值圖中的像素的顏色值小于其右側(cè)像素的顏色值,則該像素的梯度 值取為正梯度;如果二值圖中的像素的顏色值大于其右側(cè)像素的顏色值,則該像素的梯度 值取為負(fù)梯度;如果二值圖中的像素的顏色值等于其右側(cè)像素的顏色值,則該像素的梯度 值取為0。
4、 根據(jù)權(quán)利要求3所述的二值圖打印數(shù)據(jù)的處理方法,其特征在于所述 掃描所述梯度數(shù)據(jù),得到需要打印的填充區(qū)域具體為依次記錄梯度數(shù)據(jù)中兩個相鄰正梯度的坐標(biāo)和負(fù)梯度的坐標(biāo),并保存為區(qū)間;將所有區(qū)間合并,得到需要打印的填充區(qū)域。
5、 根據(jù)權(quán)利要求4所述的二值圖打印數(shù)據(jù)的處理方法,其特征在于所述 正梯度坐標(biāo)右側(cè)相鄰點(diǎn)的坐標(biāo)為區(qū)間的起點(diǎn),所述負(fù)梯度的坐標(biāo)為區(qū)間的終點(diǎn)。
6、 根據(jù)權(quán)利要求3所述的二值圖打印數(shù)據(jù)的處理方法,其特征在于所述 顏色值為0或1;所述正梯度為l,所述負(fù)梯度為-1。
全文摘要
本發(fā)明公開了一種二值圖打印數(shù)據(jù)的處理方法,涉及向打印機(jī)輸出的打印數(shù)據(jù)處理,解決了透明打印時需要傳輸?shù)臄?shù)據(jù)量較大,造成打印速度慢的問題。該二值圖打印數(shù)據(jù)的處理方法包括根據(jù)二值圖的原始數(shù)據(jù)生成對應(yīng)的梯度數(shù)據(jù);掃描所述梯度數(shù)據(jù),得到需要打印的填充區(qū)域;將所述的填充區(qū)域輸出到打印機(jī)。通過上述步驟,可以得到二值圖中需要打印的區(qū)域,而去除不必要的區(qū)域,以減少打印時需要傳輸?shù)臄?shù)據(jù),在具有透明效果時,省去了對每個像素的進(jìn)行直接計算過程,從而提高了打印速度。本發(fā)明主要用在能夠轉(zhuǎn)化為二值圖進(jìn)行打印輸出的場合中,包括一般的黑白打印,彩打中的單色圖打印等。
文檔編號G06K15/02GK101178775SQ20071019844
公開日2008年5月14日 申請日期2007年12月11日 優(yōu)先權(quán)日2007年12月11日
發(fā)明者彬 賓, 磊 張, 楊雪峰, 毅 王 申請人:北大方正集團(tuán)有限公司;北京方正阿帕比技術(shù)有限公司;北京大學(xué)