專利名稱:圖形打印輸出方法
技術領域:
本發明涉及一種圖形打印輸出的方法,尤其涉及一種通過坐標重組,以達到加速打印輸出圖形的方法。
背景技術:
隨著信息科技的不斷發展,目前臺灣地區的計算機化程度已經達到相當程度的水準,因此帶動網際網絡的普及程度也愈來愈高,消費者對于計算機周邊的需求殷切。雖然計算機周邊產業的產品生命周期日益縮短,但是輸出端的打印機產品,其重要性無可替代,且打印機市場競爭激烈,往后幾年的市場發展與產品趨勢,備受各方關切。
而打印速度則是廠商、用戶關注的焦點之一。技術的發展永無止境,在確保打印品質的同時,打印速度自然是越快越好。
在一般的打印作業,其輸出的數據中,若是有使用到掃描線(scan line)或聚合掃描線(poly scan line)的幾何圖形或文字,通常是執行非常多次的水平直線繪制或矩形繪制。
如圖1所示,傳統繪制掃描線的方法,是采取由上而下或是由下而上,一次繪制一條線,且上下線段間必須維持相鄰的關系。其繪制過程如下假設此圖形由四組掃描線組合,其坐標分別為第一組(0,0)-(10,0);(20,0)-(30,0);(40,0)-(50,0)第二組(0,1)-(10,1);(20,1)-(30,1);(40,1)-(50,1)第三組(0,2)-(10,2);(20,2)-(30,2);(40,2)-(50,2)第四組(0,3)-(10,3);(20,3)-(30,3);(40,3)-(50,3)命令格式PE=<X1,Y1,(X2-X1),(Y2-Y1);輸出命令PE=<0,0,10,0;PE=<20,0,10,0;PE=<40,0,10,0;
PE=<0,1,10,1;PE=<20,1,10,1;PE=<40,1,10,1;PE=<0,2,10,2;PE=<20,2,10,2;PE=<40,2,10,2;PE=<0,3,10,3;PE=<20,3,10,3;PE=<40,3,10,3;指令長度=4字節(Bytes);每一組坐標長度=4字節;因此,預估所需指令長度=(4字節命令+4字節*2組坐標)*12組命令=144字節。
如圖2所示,傳統繪制聚合掃描線的方法,同樣是采取由上而下或是由下而上,一次繪制一列矩形,且上下矩形間必須維持相鄰或重疊的關系。其繪制過程如下假設此圖形由三組聚合掃描線組合,其坐標分別為第一組{(0,0),(10,0),(10,10),(0,10)},{(40,0),(50,0),(50,10),(40,10)}第二組{(0,10),(20,10),(20,20),(0,20)},{(10,10),(20,10),(20,20),(10,20)},{(30,10),(40,10),(40,20),(30,20)},{(40,10),(50,10),(50,20),(40,20)}第三組{(0,20),(10,20),(10,30),(0,30)},{(40,20),(50,20),(50,30),(4,30)}命令格式PE=<X1,Y1,(X2-X1),(Y2-Y1),.....(Xn-Xn-1,Yn-Yn-1),(X1-Xn,Y1-Yn);輸出命令PE=<0,0,10,0,0,10,-10,0,0,-10;PE=<40,0,10,0,0,10,-10,0,0,-10;PE=<0,10,10,0,0,10,-10,0,0,-10;PE=<10,10,10,0,0,10,-10,0,0,-10;
PE=<30,10,10,0,0,10,-10,0,0,-10;PE=<40,10,10,0,0,10,-10,0,0,-10;PE=<0,10,10,0,0,10,-10,0,0,-10;PE=<40,10,10,0,0,10,-10,0,0,-10;指令長度=4字節(Bytes);每一組坐標長度=4字節;因此,預估所需指令長度=(4字節命令+4字節*5組坐標)*8組命令=192字節。
前述現有的繪制掃描線與聚合掃描線的方法,需要輸出大量的指令與坐標,當這些大量的數據送至打印機去處理時,所需執行的動作也愈久,甚至有圖形會有重復繪制的現象,因此導致打印的速度變慢。
發明內容
本發明所要解決的技術問題在于提供一種圖形打印輸出方法,通過掃描線或聚合掃描線的坐標的重新計算與組合,以減少輸出指令與坐標數量來達到加速處理掃描線與聚合掃描線的目的,從而提高打印機的打印速度。
為了實現上述目的,本發明提供了一種圖形打印輸出方法,包含下列步驟收集一圖形的多個原始坐標租;重組所述原始坐標組為多個新坐標組;及輸出所述新坐標組,以完成該圖形的打印;其中,該重組所述原始坐標組的步驟,是在上下相鄰的所述原始坐標組中,舍棄同一直線上的中間坐標。
上述的圖形輸出方法,其中所述原始坐標組包含多個掃描線與多個聚合掃描線的坐標組。
上述的圖形輸出方法,其中收集該圖形的所述原始坐標組的步驟,還包含下列步驟接收所述原始坐標組;及儲存所述原始坐標組至多個緩沖區內;其中,當所述原始坐標組為最后一組時,則執行重組所述原始坐標組的步驟,反之則繼續輸入并檢查其它坐標組。
上述的圖形輸出方法,其中儲存所述原始坐標組至所述緩沖區內的步驟,包含將相鄰的多個線段坐標組存入相同緩沖區內。
上述的圖形輸出方法,其中儲存所述原始坐標組至所述緩沖區內的步驟,包含將相鄰的多個聚合掃描線的多個線段坐標組存入相同緩沖區內。
上述的圖形輸出方法,其中重組所述原始坐標組為所述新坐標組的步驟,還包含儲存所述新坐標組至多個緩沖區的步驟。
上述的圖形輸出方法,其中輸出所述新坐標組以打印該圖形的步驟,還包含輸出所述新坐標組及其與其下一個新坐標組的位移量的步驟。
上述的圖形輸出方法,其中輸出所述新坐標組,以完成該圖形的打印的步驟,還包含設定一輸出模式的步驟。
上述的圖形輸出方法,其中該輸出模式包含畫筆的類型與顏色。
以下結合附圖和具體實施例對本發明進行詳細描述,但不作為對本發明的限定。
圖1為現有技術的掃描線繪制的示意圖;圖2為現有技術的聚合掃描線繪制的示意圖;圖3為本發明的圖形打印輸出方法的流程圖;圖4為本發明的收集掃描線坐標組的步驟的流程圖;圖5為本發明的收集聚合掃描線坐標組的步驟的流程圖;圖6為本發明的重組輸入的坐標組的步驟的流程圖;圖7為本發明的輸出重組的坐標組的步驟的流程圖;圖8為本發明的掃描線繪制的示意圖;及圖9為本發明的聚合掃描線繪制的示意圖。
具體實施例方式
如圖3所示,本發明所提供的圖形打印輸出方法,其主要流程包含下列步驟首先,步驟100,收集圖形的原始坐標組,這些原始坐標組包含掃描線或聚合掃描線的坐標組;
然后,步驟200,重組原始坐標組為新坐標組,將緩沖區(buffer)內的原始坐標組重新計算與組合;最后,步驟300,設定輸出模式,輸出新坐標組以完成圖形打印。
以下詳細說明本發明如何通過坐標重組以打印輸出圖形。
1、步驟100,收集圖形的原始坐標組接收掃描線或聚合掃描線的坐標,將其分別儲存于預設的緩沖區(buffer),判斷是否為最后一組掃描線或聚合掃描線的坐標,若是則執行下一步驟,若否則再次接收其它坐標。以下說明收集掃描線與聚合掃描線坐標的詳細步驟。
(1)收集掃描線坐標請參照圖4,假設共有N條掃描線,N條掃描線的線段各具有一起點坐標與一終點坐標,因此N條掃描線共有2N個坐標,令第i條掃描線的線段坐標組可表示為(Xi,Yi)-(Xi+1,Yi+1),且i=1~N。
首先,接收2N個坐標(步驟111),然后,將接收的坐標分別存入緩沖區中。接著,檢查是否存在緩沖區(步驟121);其中,當已存在緩沖區時,則檢查線段坐標組(Xi,Yi)-(Xi+1,Yi+1)是否與哪個緩沖區中的線段坐標組相鄰(步驟131),若結果為是,則將此線段坐標組(Xi,Yi)-(Xi+1,Yi+1)存入所選的緩沖區,并將此緩沖區的計數器加一(步驟141);若線段坐標組(Xi,Yi)-(Xi+1,Yi+1)未與緩沖區中的線段坐標組相鄰,或緩沖區不存在,則新增一緩沖區,并將此緩沖區的總數加一(步驟151),然后,將此線段坐標組(Xi,Yi)-(Xi+1,Yi+1)存入新增的緩沖區,并將此緩沖區的計數器加一(步驟161);隨后,陸續執行其它掃描線的坐標的接收(步驟171)。
(2)收集聚合掃描線坐標請參照圖5,假設共有N/2個聚合掃描線,N/2個聚合掃描線各包含二條掃描線的線段,因此共有N條掃描線,共有2N個坐標,令第i個聚合掃描線的二線段坐標組可表示為(Xi,Yi)-(Xi+1,Yi)與(Xi,Yi+1)-(Xi+1,Yi+1),且i=1~N/2。
首先,接收2N個坐標(步驟112),然后,將接收的坐標分別存入緩沖區中。接著,檢查是否存在緩沖區(步驟122);其中,當已存在緩沖區時,則檢查線段坐標組(Xi,Yi)-(Xi+1,Yi)與(Xi,Yi+1)-(Xi+1,Yi+1)的X坐標是否介于緩沖區中線段坐標組的起點到終點之間(步驟132),若結果為是,則將此線段坐標組(Xi,Yi)-(Xi+1,Yi)與(Xi,Yi+1)-(Xi+1,Yi+1)存入所選的緩沖區,并將此緩沖區的計數器加二(步驟112);若線段坐標組(Xi,Yi)-(Xi+1,Yi)與(Xi,Yi+1)-(Xi+1,Yi+1)的X坐標未介于緩沖區中線段坐標組的起點到終點之間,或緩沖區不存在,則新增一緩沖區,并將此緩沖區的總數加一(步驟152),然后,將線段坐標組(Xi,Yi)-(Xi+1,Yi)與(Xi,Yi+1)-(Xi+1,Yi+1)存入新增的緩沖區,并將此緩沖區的計數器加二(步驟162)。隨后,陸續執行其它聚合掃描線的坐標的接收(步驟172)。
2、步驟200,重組原始坐標組為新坐標組分別在上下相鄰的掃描線與上下相鄰的聚合掃描線中,根據直線與斜率的關系,將同一直線上的中間坐標舍去。
請參照圖6,假設有N個緩沖區,令緩沖區[I]表示第I個緩沖區,其中I=1~N,緩沖區[I]包含K個坐標(K/2條線段)。
首先,收集N個緩沖區的坐標(步驟210),然后,檢查緩沖區[I]的計數器K是否為零(步驟220),若結果為是,則繼續檢查下一個緩沖區(步驟280)若結果為否,則從緩沖區[I]內取出第J條線段(令J=3~K/2),分別檢查第J-1、第J-2與第J條線段的起點坐標與其終點坐標,是否在一直線上(步驟230、步驟240),然后將三點在一直線上的中間線段(第J-1條線段)的起點坐標或終點坐標刪除(步驟250、步驟260)。的后,將緩沖區[I]的所有線段的坐標重組完畢(步驟270),再繼續執行其它緩沖區的線段的坐標的重組(步驟280)。
3、步驟300,輸出重組坐標組,以完成圖形打印將重組后的坐標依據所需的編碼方式編碼并輸出,以打印圖形。
請參照圖7,假設有N個緩沖區,令緩沖區[I]表示第I個緩沖區,其中I=1~N,緩沖區[I]包含K個坐標。
首先,設定掃描線或聚合掃描線所要使用的畫筆的類型與顏色(步驟310),然后,檢查緩沖區[I]的計數器K是否為零(步驟320),若結果為是,則繼續檢查下一個緩沖區(步驟370)若結果為否,則接著檢查計數器K是否大于2(步驟330),以進行緩沖區[I]的坐標輸出。其中,當計數器K=1或2時,則輸出第1條線段的線段坐標組(X1,Y1)-(X2,Y2)(步驟340);當計數器K>2,且J=4~K時,輸出第J個坐標及其與第J-1個坐標的位移量,并執行其它坐標及其與下一個坐標的位移量的輸出;然后,當計數器K>2,且J=K-1~3時,輸出第J個坐標及其與第J-1個坐標的位移量(步驟350),并執行其它坐標及其與下一個坐標的位移量的輸出(步驟360)。接著,將其它緩沖區的坐標輸出完畢(步驟370),最后,依照圖形輸出模式輸出(步驟380),以打印圖形。
在以下的例子,使用本發明的圖形打印輸出方法將掃描線與聚合掃描線的幾何圖形坐標重新計算與組合,并將所需指令長度與現有技術的所需指令長度作一比較。
1、掃描線的繪制以現有技術的圖1為例,本發明的方法將上下相鄰的三條線,分別將三條線的起點與終點根據直線與斜率的關系,若是三點在同一直線上,舍棄中間的那一點,依據上述的處理原則,本方法轉換結果如圖8所示。其繪制過程如下命令格式PE=<X1,Y1,(X2-X1),(Y2-Y1),.....(Xn-Xn-1,Yn-Yn-1),(X1-Xn,Y1-Yn);輸出命令PE=<0,0,10,0,0,3,-10,0,-3,0;PE=<20,0,10,0,0,3,-10,0,-3,0;PE=<40,0,10,0,0,3,-10,0,-3,0;命令(command)長度=4字節(bytes);每一組坐標長度=4字節;預估所需指令長度=(4字節命令+4字節*5組坐標)*3組命令=72字節。因此,在掃描線的打印輸出上,本方法所需指令長度(72字節)小于現有技術的所需指令長度(144字節)。
2、聚合掃描線的繪制以圖2為例,本發明的方法將上下相鄰的兩個矩形,依據直線與斜率的關系,若是三點在同一直線上,舍棄中間那一點,依據上述的處理原則,本方法轉換結果如圖9所示。其繪制過程如下。
命令格式PE=<X1,Y1,(X2-X1),(Y2-Y1),.....(Xn-Xn-1,Yn-Yn-1),(X1-Xn,Y1-Yn);輸出命令PE=<0,0,10,0,0,10,10,0,0,10,-10,0,0,10,-10,0,0,-30;PE=<40,0,10,0,30,-10,0,0,-10,-10,0,0,-10,10,0,0,-10;
命令長度=4字節;每一組坐標長度=4字節;預估所需指令長度=(4字節命令+4字節*9組坐標)*2組命令=80字節。
因此,在聚合掃描線的打印輸出上,本方法所需指令長度(80字節)小于現有技術的所需指令長度(192字節)。
與現有技術相比,使用本方法于掃描線與聚合掃描線的打印輸出上,可以達到精簡輸出指令與坐標數量的效果。
此外,本發明還分別使用現有技術與本方法將圖形的檔案數據輸出打印,并提供一些測試數據。
本發明的測試系統系采用256MB SDRAM的Pentium4-1.5GHz個人計算機,且操作系統為Windows 98(英文版)、測試打印機為HP 4600、測試程序為Adobe Acrobat 5.0.5+日文字型、及測試檔案為IRC3200.pdf(24頁)。
首先,將輸出接口轉成檔案,利用測試程序輸出測試檔案,并存盤紀錄檔案大小。然后,將輸出接口轉成網絡地址(TCP/IP),利用測試程序輸出測試檔案,紀錄所需打印時間。
最后得到以下試驗結果現有技術的方法產生的數據大小=38,789K字節本方法產生的數據大小=30,012K字節現有技術的方法打印所需時間=460.47秒本方法打印所需時間=256.07秒因此,在圖形的檔案數據的輸出打印上,使用本方法可以減少約22%的數據,并減少約44%的打印時間。
與現有技術相比,使用本方法在圖形的檔案數據的打印輸出上,可以達到減少輸出數據、加快打印速度的效果。
綜合上述,本發明提供一種圖形輸出打印的方法,通過掃描線或聚合掃描線坐標的重新計算與組合,使其轉變成多邊形的幾何圖形架構。此外,透過繪制過程的指令長度計算與圖形數據文件的輸出打印結果,本發明與現有技術比較,將可精簡使用指令與減少出數據,而達到加快打印速度的目的。當然,由掃描線與聚合掃描線組成的幾何圖形或文字,都可通過本發明的方法而達到相同的輸出結果。
當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
權利要求
1.一種圖形打印輸出方法,其特征在于,包含下列步驟收集一圖形的多個原始坐標租;重組所述原始坐標組為多個新坐標組;及輸出所述新坐標組,以完成該圖形的打印;其中,該重組所述原始坐標組的步驟,是在上下相鄰的所述原始坐標組中,舍棄同一直線上的中間坐標。
2.根據權利要求1所述的圖形輸出方法,其特征在于,所述原始坐標組包含多個掃描線與多個聚合掃描線的坐標組。
3.根據權利要求1所述的圖形輸出方法,其特征在于,收集該圖形的所述原始坐標組的步驟,還包含下列步驟接收所述原始坐標組;及儲存所述原始坐標組至多個緩沖區內;其中,當所述原始坐標組為最后一組時,則執行重組所述原始坐標組的步驟,反之則繼續輸入并檢查其它坐標組。
4.根據權利要求3所述的圖形輸出方法,其特征在于,儲存所述原始坐標組至所述緩沖區內的步驟,包含將相鄰的多個線段坐標組存入相同緩沖區內。
5.根據權利要求3所述的圖形輸出方法,其特征在于,儲存所述原始坐標組至所述緩沖區內的步驟,包含將相鄰的多個聚合掃描線的多個線段坐標組存入相同緩沖區內。
6.根據權利要求1所述的圖形輸出方法,其特征在于,重組所述原始坐標組為所述新坐標組的步驟,還包含儲存所述新坐標組至多個緩沖區的步驟。
7.根據權利要求1所述的圖形輸出方法,其特征在于,輸出所述新坐標組以打印該圖形的步驟,還包含輸出所述新坐標組及其與其下一個新坐標組的位移量的步驟。
8.根據權利要求1所述的圖形輸出方法,其特征在于,輸出所述新坐標組,以完成該圖形的打印的步驟,還包含設定一輸出模式的步驟。
9.根據權利要求1所述的圖形輸出方法,其特征在于,該輸出模式包含畫筆的類型與顏色。
全文摘要
本發明涉及一種圖形打印輸出方法,通過掃描線或聚合掃描線坐標的重新計算與組合,使其轉變成為多邊形的幾何圖案架構,而達到減少輸出數據與精簡使用指令,借以提高打印機的打印速度。
文檔編號B41L39/00GK1669815SQ20041000890
公開日2005年9月21日 申請日期2004年3月15日 優先權日2004年3月15日
發明者葉玉麟, 溫富錦 申請人:德鑫科技股份有限公司