本發(fā)明涉及打印機技術領域,尤其涉及一種熱敏打印機灰度打印方法。
背景技術:
打印機無非就是將人們的心中的想法通過一定的表現(xiàn)形式(包含文字、圖像、形狀等)用特定的介質呈現(xiàn)出來的機器。舉個例子,熱敏打印機就是將人們所想表達的圖形和文字,通過熱敏紙呈現(xiàn)出現(xiàn)。
票據(jù)打印機,按照打印方式可分為熱敏、熱轉印、針式打印機。
熱敏打印機工作原理是打印頭上安裝有半導體加熱元件,打印頭加熱并接觸熱敏打印紙后就可以打印出需要的圖案,其原理與熱敏式傳真機類似。圖象是通過加熱,在熱敏紙的膜中產(chǎn)生化學反應而生成的。這種熱敏打印機化學反應是在一定的溫度下進行的。高溫會加速這種化學反應。當溫度低于60℃時,紙需要經(jīng)過相當長,甚至長達幾年的時間才能變成深色;而當溫度為200℃時,這種反映會在幾微秒內完成。所以要想使熱敏打印機打印出圖形和文字,就必須滿足兩個條件,熱敏紙和高溫。當前市面上的熱敏打印機只能打印二值圖,也就是說要么最黑要么白,打印圖片效果差,不靈活。
現(xiàn)有技術中公開了一種“熱敏打印機的灰度控制器”,見公開號為:CN201619297U,公開日為:2010-11-03的中國專利,公開了一種熱敏打印機的灰度控制器,其與熱敏打印頭片相連,所述灰度控制器用以實現(xiàn)對熱敏打印頭片的灰度控制;所述灰度控制器包括微處理單元,和FPGA/CPLD單元;所述微處理單元用以控制打印數(shù)據(jù)的加熱時間;所述FPGA/CPLD單元與微處理單元相連,用以精確地進行打印時間控制與時序控制。該實用新型同時結合了微處理單元的運算優(yōu)勢和FPGA/CPLD單元的快速反應及精確時間控制優(yōu)勢,實現(xiàn)多級灰度打印控制,節(jié)約硬件和軟件成本。該實用新型采用的技術方案與本專利申請并不相同。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題,在于提供一種熱敏打印機灰度打印方法,提高了熱敏打印機靈活性,通過合理的數(shù)據(jù)處理壓縮算法以及打印機雙緩沖機制解決了灰度圖片解析困難。
本發(fā)明是這樣實現(xiàn)的:一種熱敏打印機灰度打印方法,所述方法為:通過上位機對圖像進行預處理,將圖像轉為熱敏打印機需要灰度等級圖像數(shù)據(jù),熱敏打印機端將上位機一行的灰度數(shù)據(jù)進行轉換成多行二值圖,然后通過控制加熱等級和熱敏打印機馬達進紙速度將多行二值圖打印成一行灰度圖像。
進一步的,所述方法進一步具體為:上位機負責讀取256級灰度圖像進行數(shù)據(jù)壓縮,將256級灰度圖像分為熱敏打印機需要的灰度等級圖像數(shù)據(jù);所述打印機端提供指令解析任務和打印任務;指令解析任務實現(xiàn)接收上位機下發(fā)的指令數(shù)據(jù),并進行數(shù)據(jù)解析放入緩沖區(qū);熱敏打印機端將上位機一行的灰度數(shù)據(jù)進行轉換成多行二值圖;所述打印任務將存入緩沖區(qū)的數(shù)據(jù)進行打印,根據(jù)緩沖數(shù)據(jù)控制馬達以及控制加熱時間和等級將多行二值圖打印成一行灰度圖像。
進一步的,所述緩沖區(qū)為雙緩沖區(qū),當?shù)谝痪彌_區(qū)為空閑時,指令解析處理后的數(shù)據(jù)放入第一緩沖區(qū),當?shù)谝痪彌_區(qū)不空閑,若第二緩沖區(qū)空閑,則將放入第二緩沖區(qū)中,若兩個緩沖區(qū)都不空閑,則打印機正在打印緩沖內容,并且下個緩沖數(shù)據(jù)已經(jīng)準備好了,此時指令解析任務阻塞;打印任務先打印第一緩沖區(qū)內容,第一緩沖區(qū)打印結束會將第一緩沖區(qū)設置為空閑狀態(tài),然后直接繼續(xù)打印第二緩沖區(qū)數(shù)據(jù),并且第一緩沖區(qū)一旦空閑指令解析任務又重新運行,準備下個數(shù)據(jù)放入第一緩沖區(qū)中,打印任務打印完第二緩沖區(qū),這樣不用等待直接進行打印第一緩沖區(qū)內容,能一直循環(huán)無間斷的打印;
進一步的,上位機負責讀取256級灰度圖像,將256級灰度圖像分為熱敏打印機需要的四級灰度圖像數(shù)據(jù);四級灰度圖像數(shù)據(jù)以2個bit表示一個像點,上位機讀取256級灰度圖像圖片,一個字節(jié)表示一個灰度點,值的大小表示灰度等級0x00到0xFF,由于只需要分為四級灰度,需要將256級進行四等分,只需要取這個字節(jié)的前兩位,相當于除以64,將4個字節(jié)數(shù)據(jù)合并成一個字節(jié);故一個字節(jié)數(shù)據(jù)表示4個像素點,上位機發(fā)一個字節(jié)0x1B,第一個像素點級數(shù)由第7,6bit表示,其灰度級數(shù)為0,第二個像素點由第5,4bit表示,其灰度級數(shù)為1,第二個像素點由第3,2bit表示,其灰度級數(shù)為3,第二個像素點由第1,0bit表示,其灰度級數(shù)為4;
四級灰度圖像數(shù)據(jù)中將數(shù)據(jù)轉化的3行二值圖像,即將2個字節(jié)的四級灰度圖數(shù)據(jù)轉成3個字節(jié)二值圖數(shù)據(jù)放入緩存中;
四級灰度圖像數(shù)據(jù)中,用1表示要加熱點,0表示不加熱點,3個字節(jié)二值圖組成一行4級灰度圖,先將第一行數(shù)據(jù)加載打印頭,接著選通加熱信號,打印頭在對應的位置加熱,到達設定時間后關閉加熱選通信號,然后接著加載第二行二值數(shù)據(jù),以此類推加載第三行二值數(shù)據(jù),最后將3行二值數(shù)據(jù)打印完成后,這時控制馬達,剛好讓馬達走完一個點行,這樣這個點行就會有相應的灰度效果。
進一步的,所述方法:上位機負責讀取256級灰度圖像,將256級灰度圖像分為熱敏打印機需要的八級灰度圖像數(shù)據(jù);八級灰度圖像數(shù)據(jù)以4個bit表示一個像素點,上位機發(fā)送一個字節(jié)數(shù)據(jù)表示2個像素點,每個字節(jié)的第0bit和第4bit保留,上位機發(fā)一個字節(jié)0x0A,第1個像素點級數(shù)由第7,6,5bit表示,第4bit保留,其灰度級數(shù)為0,第2個像素點由第3,2,1bit表示,其灰度級數(shù)為1;第2個像素點由第3,2,1bit表示,其灰度級數(shù)為1;第2個像素點由第3,2,1bit表示,第0bit保留,其灰度級數(shù)為5;
八級灰度圖像數(shù)據(jù)中將數(shù)據(jù)轉化的7行二值圖像,即將4個字節(jié)的八級灰度圖數(shù)據(jù)轉成7個字節(jié)二值圖數(shù)據(jù)放入緩存中。
本發(fā)明具有如下優(yōu)點:本發(fā)明基于傳統(tǒng)熱敏打印機進行功能優(yōu)化,提高了熱敏打印機靈活性,通過合理的數(shù)據(jù)處理壓縮算法以及打印機雙緩沖機制解決了灰度圖片解析困難,打印數(shù)據(jù)量大不好傳輸?shù)葐栴},大大提高了打印效率,使得打印速度不會受數(shù)據(jù)量影響;灰度打印不僅可以打印人像、logo、風景等,在銀行等行業(yè)類業(yè)務上還可以打印銀行卡、二代證等。
附圖說明
下面參照附圖結合實施例對本發(fā)明作進一步的說明。
圖1為本發(fā)明方法結構示意圖。
圖2為本發(fā)明雙緩沖區(qū)處理數(shù)據(jù)的流程示意圖。
圖3為本發(fā)明3行二值數(shù)據(jù)加熱點的示意圖。
圖4為本發(fā)明中打印后的多個點行灰度效果示意圖。
具體實施方式
請參閱圖1至圖2所示,本發(fā)明的一種熱敏打印機灰度打印方法,為了實現(xiàn)灰度打印,可以通過控制加熱時間和加熱次數(shù)來控制加熱頭對紙張的能量,因為圖片數(shù)據(jù)量較大,而單片機資源以及數(shù)據(jù)傳輸速度有限,所有需要上位機對圖像進行預處理,將圖像轉為熱敏打印機需要灰度等級,這樣才能提高打印質量和打印速度。打印機端將上位機一行的灰度數(shù)據(jù)進行轉換成多行二值圖,然后通過控制加熱等級和熱敏打印機馬達進紙將這多行二值圖打印成一行灰度圖像。
所述方法進一步具體為:上位機負責讀取256級灰度圖像進行數(shù)據(jù)壓縮,將256級灰度圖像分為熱敏打印機需要的灰度等級圖像數(shù)據(jù);所述打印機端提供指令解析任務和打印任務;指令解析任務實現(xiàn)接收上位機下發(fā)的指令數(shù)據(jù),并進行數(shù)據(jù)解析放入緩沖區(qū);熱敏打印機端將上位機一行的灰度數(shù)據(jù)進行轉換成多行二值圖;所述打印任務將存入緩沖區(qū)的數(shù)據(jù)進行打印,根據(jù)緩沖數(shù)據(jù)控制馬達以及控制加熱時間和等級將多行二值圖打印成一行灰度圖像。
為了提高打印效率,提高mcu利用率,設計了雙緩沖機制,所述緩沖區(qū)為雙緩沖區(qū),當?shù)谝痪彌_區(qū)為空閑時,指令解析處理后的數(shù)據(jù)放入第一緩沖區(qū),當?shù)谝痪彌_區(qū)不空閑,若第二緩沖區(qū)空閑,則將放入第二緩沖區(qū)中,若兩個緩沖區(qū)都不空閑,則打印機正在打印緩沖內容,并且下個緩沖數(shù)據(jù)已經(jīng)準備好了,此時指令解析任務阻塞;打印任務先打印第一緩沖區(qū)內容,第一緩沖區(qū)打印結束會將第一緩沖區(qū)設置為空閑狀態(tài),然后直接繼續(xù)打印第二緩沖區(qū)數(shù)據(jù),并且第一緩沖區(qū)一旦空閑指令解析任務又重新運行,準備下個數(shù)據(jù)放入第一緩沖區(qū)中,打印任務打印完第二緩沖區(qū)后,指令解析任務早已將第一緩沖區(qū)數(shù)據(jù)放入緩沖中,這樣不用等待直接進行打印第一緩沖區(qū)內容,這樣可以一直循環(huán)無間斷的打印。
如圖3和圖4所示,下面以四級灰度為例:
上位機負責讀取256級灰度圖像,將256級灰度圖像分為熱敏打印機需要的四級灰度圖像數(shù)據(jù);四級灰度圖像數(shù)據(jù)以2個bit表示一個像點,上位機讀取256級灰度圖bmp圖片,一個字節(jié)表示一個灰度點,值的大小表示灰度等級0x00到0xFF,因為只需要分為4級灰度,需要將256級4等分,所以只需要取這個字節(jié)的前兩位,相當于除以64,可以將4個字節(jié)數(shù)據(jù)合并成一個字節(jié)。故一個字節(jié)數(shù)據(jù)可以表示4個像素點,如上位機發(fā)一個字節(jié)0x1B(00011011),第一個像素點級數(shù)由第7,6bit表示,其灰度級數(shù)為0,第二個像素點由第5,4bit表示,其灰度級數(shù)為1,第二個像素點由第3,2bit表示,其灰度級數(shù)為3,第二個像素點由第1,0bit表示,其灰度級數(shù)為4;
指令解析任務負責實現(xiàn)接收讀取上位機下發(fā)的指令數(shù)據(jù),并進行數(shù)據(jù)解析放入緩沖區(qū)。首先將上位機接收的指令進行處理,以4級灰度數(shù)據(jù)為例,先將數(shù)據(jù)分級處理,假如數(shù)據(jù)為0xE4(11100100),表示4個點,灰度等級分別為3、2、1、0;
四級灰度圖像數(shù)據(jù)中將數(shù)據(jù)轉化的3行二值圖像,如表1(表1為兩字節(jié)0xE4數(shù)據(jù)轉換——4級灰度)所示,將8個點(2個字節(jié))的4級灰度圖數(shù)據(jù)(0xE4 0xE4),轉成了3個字節(jié)(3行)二值圖數(shù)據(jù)(0xEE 0xCC 0x88)放入緩存中,
表1
四級灰度圖像數(shù)據(jù)中,用1表示要加熱點,0表示不加熱點,3個字節(jié)二值圖組成一行4級灰度圖,先將第一行數(shù)據(jù)加載打印頭,接著選通加熱信號,打印頭在對應的位置加熱,到達設定時間后關閉加熱選通信號,然后接著加載第二行二值數(shù)據(jù),以此類推,加載第三行二值數(shù)據(jù),3行二值數(shù)據(jù)加熱點如圖3所示(這個加熱點都是黑色的,該圖3并不是帶有色塊的圖),最后將3行二值數(shù)據(jù)打印完成后,這時控制馬達,剛好讓馬達走完一個點行,這樣這個點行就會有相應的灰度效果。整體放大后的多個點行效果大致如圖4所示(圖中黑色塊為打印時的灰度圖片,并不是色塊圖)。
另外,八級灰度圖像數(shù)據(jù)也一樣的原理:所述方法:上位機負責讀取256級灰度圖像,將256級灰度圖像分為熱敏打印機需要的八級灰度圖像數(shù)據(jù);八級灰度圖像數(shù)據(jù)以4個bit表示一個像素點,上位機發(fā)送一個字節(jié)數(shù)據(jù)表示2個像素點,每個字節(jié)的第0bit和第4bit保留,如上位機發(fā)一個字節(jié)0x0A(00001010),,第1個像素點級數(shù)由第7,6,5bit表示,第4bit保留,其灰度級數(shù)為0,第2個像素點由第3,2,1bit表示,其灰度級數(shù)為1;第2個像素點由第3,2,1bit表示,其灰度級數(shù)為1;第2個像素點由第3,2,1bit表示,第0bit保留,其灰度級數(shù)為5;
八級灰度圖像數(shù)據(jù)中將數(shù)據(jù)轉化的7行二值圖像,即將4個字節(jié)的八級灰度圖數(shù)據(jù)轉成7個字節(jié)二值圖數(shù)據(jù)放入緩存中。
本發(fā)明中根據(jù)打印機的性能可以是1級灰度、2級灰度、3級灰度、4級灰度、5級灰度、6級灰度、7級灰度、8級灰度、9級灰度等等,該些灰度的處理方式原理類似,在此就不進行一一說明。
總之,本發(fā)明基于傳統(tǒng)熱敏打印機進行功能優(yōu)化,提高了熱敏打印機靈活性,通過合理的數(shù)據(jù)處理壓縮算法以及打印機雙緩沖機制解決了灰度圖片解析困難,打印數(shù)據(jù)量大不好傳輸?shù)葐栴},大大提高了打印效率,使得打印速度不會受數(shù)據(jù)量影響?;叶却蛴〔粌H可以打印人像、logo、風景等,在銀行等行業(yè)類業(yè)務上還可以打印銀行卡、二代證等。
雖然以上描述了本發(fā)明的具體實施方式,但是熟悉本技術領域的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領域的技術人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應當涵蓋在本發(fā)明的權利要求所保護的范圍內。