发明内容
本发明要解决的技术问题是提供一种多灰度级打印方法和系统,能够更好的表现图像的深浅变换,使所打印的图像更加细腻、逼真。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的:
本发明提供了一种多灰度级打印方法,该方法包括:
将欲打印的图像文件分解为单色位图数据;
将所述单色位图数据转换为至少两位的单色位图数据;
将所述转换为至少两位的单色位图数据进行矩阵变换,变换为头板能识别的以喷头宽度为单位的、逐行排列格式的喷头控制数据后存储于预置的内存中,并将该喷头控制数据传输至头板;
按喷头控制数据所控制的不同喷头,头板将所接收的喷头控制数据剥离,并将控制不同喷头的喷头控制数据分别发送给每个喷头;
喷头按照所接收的喷头控制数据值喷墨打印。
其中,所述变换为头板能识别的以喷头宽度为单位的、逐行排列格式的喷头控制数据后存储于预置的内存中,该步骤之前进一步包括:
当图像分辨率大于打印机的实际分辨率时,则将图像数据分成至少两个部分存储至预置的内存中。
其中,所述的当图像分辨率大于打印机的实际分辨率时,则将图像数据分成至少两个部分存储至预置的内存中,该步骤具体包括:
当图像宽方向的分辨率大于打印机宽方向的实际分辨率时,将单色位图数据宽方向的一个颜色分为至少两个部分并分别保存到不同的预置的内存1中;
判断图像的长方向的分辨率是否大于打印机喷头的分辨率,如果是,则将内存1中的单色位图长方向一个颜色的数据分为至少两个部分并分别保存于不同的预置的内存2中,如果否,则将内存1中的单色位图数据直接保存于内存2中;
所述的将数据变换为头板能识别的喷头控制数据后存储于预置的内存中,具体包括:
将内存2中的数据变换为头板能识别的喷头控制数据存储于预置的内存3中。
其中,所述的预置的内存1的大小取决于图像的宽度,喷头的喷孔数,以及图像的位数;内存1的数量取决于图像宽方向的分辨率,打印机宽方向的实际分辨率,以及打印机所支持的颜色数;
所述的预置的内存2的大小取决于内存1的大小,图像长方向的分辨率,以及打印机喷头的实际分辨率;内存2的数量取决于打印机支持的颜色数;
所述的预置的内存3的大小取决于喷孔数,图像位数,以及图像宽度;内存3的数量为一个。
其中,该方法进一步包括:
在一个打印行程后,检测发送的喷头控制数据是否全部被头板处理,如果是,则进一步判断下一打印行程是否准备好;如果否,则报告错误并停止打印。
其中,该方法中所述的喷头控制数据通过数据传输卡传输至头板。
以上技术方案可以看出,由于将欲打印的图像文件由现有技术中转化为的1位单色位图数据,改变为:将欲打印图像文件转化为多位的单色位图数据,将转化后的该单色位图数据变换为头板能识别的喷头控制数据,图像像素的位数来决定要将多少个字节作为代表一个像素的值,头板将喷头控制数据分别发送至不同的喷头后,喷头根据接收的该控制数据的值来控制喷孔在同一位置上喷墨的次数,以此决定某一点上喷墨量的大小,因此从所喷的墨滴的墨量的不同表现出颜色上的深浅的不同,实现多灰度级打印。利用本发明,更好的表现图像的深浅变换,使所打印的图像更加细腻、逼真。
具体实施方式
本发明的核心思想是:将欲打印的图像文件由现有技术中转化为的1位单色位图数据,改变为:将欲打印图像文件转化为多位的单色位图数据,将转化后的该单色位图数据变换为头板能识别的喷头控制数据,头板将喷头控制数据分别发送至不同的喷头后,喷头根据接收的该控制数据的值来控制喷孔在同一位置上喷墨的次数,以此决定某一点上喷墨量的大小,因此从所喷的墨滴的墨量的不同表现出颜色上的深浅的不同,实现多灰度级打印。
为使本发明的目的、技术方案以及有点更加清楚明白,以下参照附图并结合具体实施例对本发明作详细描述。
实施例一,参照附图1,为实现发明目的,本发明所提供的具体方法流程如下:
步骤101:将欲打印的图像文件转化为至少两位的单色位图数据;
其中,所述的位图也叫点阵图,位图以点阵数据的方式存储图像格式,图像按照一定的分辨率划分成横竖排列的点阵,每个点的颜色是由一个字节表示,例如8位位图,甚至更多如24位或32位,图像的点阵被逐行扫描,并将每一个点的颜色数据顺序排列保存,最后形成位图文件;
其中,所述的单色位图是通过软件将某种格式的图像文件分解成四种颜色,如C(青色)、M(品红)、Y(黄色)、K(黑色),或者更多,每种颜色数据构成一个位图文件;
现有技术中,单色的位图数据通常为1位的单色位图,而在本发明中将欲打印的图像文件经过栅格化图像处理后,将C、M、Y、K、W单色位图由原来的1位转化为多位;
步骤102:读取单色位图数据,将数据变换为头板能识别的喷头控制数据,并将该数据存储于预置的内存中;
其中,所述的数据变换是单色位图数据进行矩阵变换,按照头板协议的数据组织形式,将单色位图数据转换为以喷头宽度为单位的,逐行排列的格式而最终形成喷头控制数据;
其中,存储该数据的内存是在程序初始化时由驱动软件所申请的内存空间;
其中,在整个图像数据的处理过程都是以字节为单位,其中一个重要的环节是,要根据图像像素的位数来决定要将多少个字节作为代表一个像素的值绑定在一起处理;如本实施例以4位位图为例,那么一个像素的表示可以是从二进制的0000到1111,中间有15个级别,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,这样,就为将数值上的信息无损失的依靠墨点大小反映在打印介质上,实现多灰度级打印做好准备;
步骤103:将所述的喷头控制数据通过数据传输卡传输至头板;
其中,数据传输卡是一块具有USB接口的集成电路板,承载着计算机与头板之间的数据传输的作用;
步骤104:头板读取所接收的喷头控制数据,并将控制不同喷头的喷头控制数据通过不同的通道分别发送给每个喷头;
其中,所述的喷头控制数据传输至USB数据传输卡,头板从数据传输卡取得一个行程的数据;
其中,通过数据传输卡传输给头板的喷头控制数据,包括了打印机多个喷头的数据,头板在把这些喷头控制数据分别传输给每个喷头之前,需要将属于不同喷头的数据相互剥离,头板与喷头之间通过一根扁平数据线分别与每个喷头连接在一起,每个扁平线所连接的通路就成为一个通道,被剥离后的喷头控制数据,就是通过这些通道被分别地送到每个喷头;
步骤105:喷头按照所接收的喷头控制数据值喷墨打印。
以4位位图15级灰度为例:如果某种格式的图像文件转化为适于印刷的4位单色位图文件的数据,读取该单色位图数据,为使该数据变换为头板能识别的喷头控制数据,将数据进行矩阵变换,按照头板协议的数据组织形式,将单色位图数据转换为以喷头宽度为单位的,逐行排列的格式而最终形成喷头控制数据,并将该数据存储于预置的内存中;将经过转换而得到的喷头控制数据通过数据传输卡传输至头板;头板将接收的喷头控制数据剥离后通过不同的通道分别发送给每个喷头;
上例中,喷头在同一个位置的最大喷墨次数为15次,当喷头某一喷孔的图像数据为二进制的1111时,相当于十进制的15,于是喷头被控制使得其上该喷孔会喷墨15次,使得该点的墨量达到最大,如果喷头喷孔接收的数据为二进制的1001时,转换为十进制是9,则该喷孔喷墨9次,这样所喷的墨量没有前者多;依此类推,喷头喷孔所接收的数值越大,其多次喷墨后所产生的墨点就越大,由此,4位单色位图在打印的时候能够产生15个级别的墨滴大小,即15级灰度,变现出颜色的不同深浅。通过使用本发明的方法,打印过程中,墨滴大小形成差异使得图像色彩浓度过渡更加柔和,顺畅。
参见图2,本发明对多灰度打印还提供了一种优化方法,当欲打印的图像文件的图像的分辨率大于打印机的实际分辨率时,根据不同情况,将图像的长方向或者/和宽方向的数据抽取成多个部分,分别进行存储之后传输至头板。此优化方法中,由于图像数据多了,较之于第一个实施例中提供的方法,更便于数据的管理,该方法的具体流程如下:
步骤201:将欲打印的图像文件转化为至少两位的单色位图数据;
其中,所述的位图也叫点阵图,位图以点阵数据的方式存储图像格式,图像按照一定的分辨率划分成横竖排列的点阵,每个点的颜色是由一个字节表示,例如8位位图,甚至更多如24位或32位,图像的点阵被逐行扫描,并将每一个点的颜色数据顺序排列保存,最后形成位图文件;
其中,所述的单色位图是通过软件将某种格式的图像文件分解成四种颜色,如C(青色)、M(品红)、Y(黄色)、K(黑色),或者更多,每种颜色数据构成一个位图文件;
现有技术中,单色的位图数据通常为1位的单色位图,而在本发明中将欲打印的图像文件经过栅格化图像处理后,将C、M、Y、K、W单色位图由原来的1位转化为多位;
步骤202:当图像宽方向分辨率大于打印机宽方向的实际分辨率时,读取单色位图文件中的数据,将单色位图数据宽方向的一个颜色分为至少两个部分并分别保存到不同的预置的内存1中;
其中,所述的预置的内存1是在程序初始化时申请的内存空间,用于专门存储原始的单色位图数据,该数据是从栅格化图像处理后所产生的单色位图文件数据中读取;
其中,内存1的大小取决于单色图像以像素为单位的宽度,喷头的喷孔数,以及单色图像的位数;内存1的数量取决于是否要进行单色图像的宽方向的抽点,以及抽几次点;所述的抽点是指:当图像的分辨率大于打印机的实际分辨率时,将大色图像在图像的宽或长的两个方向的数据抽取成多个部分,并分多次打印来实现图像的高分辨率的要求;
内存1的计算方法可以为:
内存1的大小=图像宽度×喷孔数×图像位数
内存1数量=(图像宽方向的分辨率/打印机宽方向的实际分辨率)
×颜色数
其中,读取单色位图数据的动作,直到满足一个打印行程的数据量需要;
步骤203:判断图像的长方向的分辨率是否大于打印机喷头的分辨率,如果是,则将内存1中的单色位图长方向一个颜色的数据分为至少两个部分并分别保存于不同的预置的内存2中,如果否,则将内存1中的单色位图数据直接保存于内存2中;
其中,所述的预置的内存2是在程序初始化时申请的内存空间,用于专门存储单色位图长方向的数据抽点后的结果数据;
其中,所述抽点同前面所述,是当图像的分辨率大于打印机的实际分辨率是,将图像长方向或宽方向的数据抽签成多个部分,并分多次打印来实现图像高分辨率要求;内存2的大小取决于内存1的大小,单色图像长方向的分辨率以及打印机喷头的分辨率;内存2的数量取决于打印机支持的颜色数;
内存2的计算方法可以为:
内存2的大小=内存1的大小/(图像长方向的分辨率/打印机喷头
的分辨率)
内存2的数量=颜色数
步骤204:将内存2中的数据变换为头板能识别的喷头控制数据,并将该数据存储于预置的内存3中;
其中,所述的数据变换是单色位图数据进行矩阵变换,按照头板协议的数据组织形式,将单色位图数据转换为以喷头宽度为单位的,逐行排列的格式而最终形成喷头控制数据;
其中,所述的预置的内存3是在程序初始化时申请的内存空间,用于存储内存2中经转换后的喷头控制数据,内存3的大小取决于喷孔数,单色位图的位数,图像宽度;内存3的数量可以设置为1个;
内存3的计算方法可以为:
内存3的大小=喷孔数×位数×图像宽度
内存3的数量=1
其中,在整个图像数据的处理过程都是以字节为单位,其中一个重要的环节是,要根据图像像素的位数来决定要将多少个字节作为代表一个像素的的值绑定在一起处理;如本实施例以4位位图为例,那么一个像素的表示可以是从二进制的0000到1111,中间有15个级别,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,这样,就为将数值上的信息无损失的依靠墨点大小反映在打印介质上,实现多灰度级打印做好准备;
步骤205:将内存3中的喷头控制数据通过数据传输卡发送给头板;
其中,数据传输卡是一块具有USB接口的集成电路板,承载着计算机与头板之间的数据传输的作用;
步骤206:头板读取所接收的喷头控制数据,并将控制不同喷头的喷头控制数据通过不同的通道分别发送给每个喷头;
其中,所述的喷头控制数据传输至USB数据传输卡,头板从数据传输卡取得一个行程的数据;
其中,通过数据传输卡传输给头板的喷头控制数据,包括了打印机多个喷头的数据,头板在把这些喷头控制数据分别传输给每个喷头之前,需要将属于不同喷头的数据相互剥离,头板与喷头之间通过一根扁平数据线分别与每个喷头连接在一起,每个扁平线所连接的通路就成为一个通道,被剥离后的喷头控制数据,就是通过这些通道被分别地送到每个喷头;
步骤207:喷头按照所接收的喷头控制数据值喷墨打印。
在实施例一和实施二所提供的任一多灰度级打印方法可以进一步包括:在一个打印行程后,检测发送的喷头控制数据是否全部被头板处理,如果是,则进一步判断下一打印行程是否准备好;如果否,则报告错误并停止打印。
以上为本发明提供的一种多灰度级打印方法的具体实施例而已,只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。