CN102436357B - 图像处理装置及图像处理方法 - Google Patents
图像处理装置及图像处理方法 Download PDFInfo
- Publication number
- CN102436357B CN102436357B CN201110243474.5A CN201110243474A CN102436357B CN 102436357 B CN102436357 B CN 102436357B CN 201110243474 A CN201110243474 A CN 201110243474A CN 102436357 B CN102436357 B CN 102436357B
- Authority
- CN
- China
- Prior art keywords
- rendering order
- closed region
- order
- fine rule
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供图像处理装置及图像处理方法。将加粗处理应用于不是细线绘制命令的细线填充图形,进而执行再现性得到提高的输出。所述图像处理装置包括:绘制命令确定部,其确定绘制命令是否为形成细线的填充图形;以及线宽校正部,其对被确定为形成细线的填充图形的绘制命令,执行线宽校正处理。
Description
技术领域
本发明涉及用于根据从外部输入的绘制(draw)命令来生成打印数据的图像处理装置及图像处理方法,并且特别地涉及执行所述绘制命令的校正以提高线图形的再现性的图像处理装置及图像处理方法。
背景技术
传统上,已知有如下的图像处理设备,其通过使用调色剂或墨的打印机引擎,来执行与输入电子数据相对应的图像形成。这类图像处理设备存在如下的问题,即由于所述打印机引擎的特性所致,无法按所述电子数据的意指,来再现具有封闭区域的极小图形,诸如细线等。例如,在通过将对应于页面图像的潜像用调色剂定影于片材上、来形成图像的电子照相处理中,如果形成图形的封闭区域的面积是小的,则调色剂附着量倾向于是少的。结果,具有小面积的封闭区域,可能被表现得比较细。在这里,一般构造如下的结构,即,使得包括诸如线、字符及图像等的绘制命令的、用页面描述语言(以下称为“PDL”)描述的数据,被接收作为输入电子数据并且被分析,以便生成页面图像。
作为解决所述问题的现有技术,提出了如下的打印控制设备,该打印控制设备配备有能够指定细线的加粗量的UI(用户界面),以与细线的色调以及和背景色的对比度相对应地,来控制加粗宽度(日本专利特开2009-105827号公报)。
在现有技术(日本专利特开2009-105827号公报)中,通过确定是否加粗针对线绘制命令的线以调整线宽,来实现加粗处理。然而,未考虑到用除线绘制命令以外的、诸如矩形填充图形等的填充图形(封闭区域填充命令)来表现的线图形。相应地,存在如下的问题,即对于未使用线绘制命令而通过应用软件绘制的线图形,无法应用加粗处理。
此外,在现有技术(日本专利特开2009-105827号公报)中,虽然与和背景色的对比度等相对应地布置了加粗宽度,但是,例如在线图形彼此相邻的情况下、与通过加粗进行绘制相关的问题,未得到特别的考虑。
在这里,前述绘制命令是指如下的绘制对象,该绘制对象具有诸如表示起始点及结束点的坐标值、线宽、颜色、线端形状等的属性。线绘制命令一般也称为“线绘制”或“描边绘制”。此外,前述填充图形(封闭区域填充命令)是指被定义作为如下图形(填充图形)的绘制对象,所述图形的、用多个坐标点等来代表的内部封闭区域填充有指定颜色。填充图形的典型示例包括矩形(四边形)、多边形、圆形及椭圆形等。
发明内容
根据本发明,提供一种图像处理装置,该图像处理装置包括:绘制命令确定部,其依据与已从外部输入的绘制命令相对应的函数的类型,来确定所述绘制命令是否为形成细线的填充图形;以及线宽校正部,其针对作为被确定为细线填充图形的所述绘制命令的细线填充图形,执行线宽校正处理。
根据本发明,能够提供能够将加粗处理应用于作为线绘制命令以外的图形的细线填充图形、进而执行再现性得到提高的输出的图像处理装置及图像处理方法。
通过以下对示例性实施例的描述(参照附图),本发明的其他特征将变得清楚。
附图说明
图1是示出一个实施例中的图像处理装置的软件模块的结构的框图;
图2是示出一个实施例中的打印机驱动程序的绘制处理模块的结构的框图;
图3是示出打印机驱动程序的用户界面的示例的图;
图4A至4D是示出对填充图形的加粗校正处理之前及之后的形状的图;
图5是示出一个实施例中的细线校正处理的过程的流程图;
图6是示出针对绘制命令的类型与图形形状的组合来执行加粗处理的条件的表;
图7A及7B是示出水平或垂直方向彼此不同的多个矩形之间的位置关系的图;
图8A至8D是示出水平或垂直方向彼此相同的多个矩形之间的位置关系、并且示出加粗处理之前及之后的状态的图;
图9是示出第二实施例中的细线校正处理的过程的流程图;
图10是示出第二实施例中的细线校正处理的过程的流程图;
图11是示出第三实施例中的细线校正处理的过程的流程图;
图12是示出第四实施例中的细线校正处理的过程的流程图;以及
图13是示出第五实施例中的图像处理装置的模块结构的图。
具体实施方式
下面,将参照附图,来描述实施本发明的最佳模式。然而,在这些实施例中描述的构成要素仅仅是示例,并且,本发明的范围不局限于此。
第一实施例
在本实施例中,将描述作为在主计算机的操作系统(以下称为“OS”)上运行的打印机驱动程序的、应用本发明的示例。
图1是示出应用根据本发明的一个实施例的打印机驱动程序107、以及在与打印处理相关的主计算机101上运行的软件的模块结构的框图。
在这里,执行所述软件模块组,使得OS将作为文件存储在未示出的外部存储设备中的程序代码,加载于未示出的RAM上,并且,由主计算机101的CPU来执行程序代码。通过软件模块组与硬件设备组之间的协作,来实现根据本发明的功能。
本实施例中的软件模块组能够大致分类为应用程序102、OS(103)及打印机驱动程序107。此外,负责OS(103)执行的打印处理的模块配备有图形引擎104、打印处理器106及系统假脱机程序108。
为执行针对打印机110的打印指令,应用程序102首先调用作为图形引擎104的服务函数组的GDI(图形设备接口),进而发出绘制命令。
然后,图形引擎104基于经由GDI接收到的打印指令,来生成中间代码格式的假脱机文件(EMF:增强型元文件,Enhanced Meta File),并且将该假脱机文件临时假脱机存储在HDD上的存储区域中。
随后,打印处理器106读取被临时存储为假脱机文件105的打印数据,将绘制指令转换为相应的DDI(设备驱动程序接口,Device DriverInterface)函数,进而执行针对打印机驱动程序107的绘制指令。在这里,打印处理器106执行与由打印机驱动程序预先声明的处理能力相对应的如下处理,即将GDI函数的绘制指令转换为打印机驱动程序107能够接收的DDI函数。
另一方面,打印机驱动程序107基于DDI函数的绘制指令,生成打印机110能够处理的PDL(页面描述语言)命令。然后,PDL命令经由诸如网络等的接口,被作为打印作业从系统假脱机程序108输出至打印机110。
图2是示出本实施例中的打印机驱动程序107中的绘制处理模块的结构的框图。该图中的附图标记201代表绘制命令输入部,该绘制命令输入部从打印处理器106接收DDI函数的绘制命令。
附图标记202代表绘制命令确定部,其确定绘制命令是否为表现细线形状的绘制命令。如后所述,确定是否将加粗处理应用于由绘制命令确定部202确定为细线形状的绘制命令。关于是否为细线形状的确定的目标,可以仅是线绘制命令,或者可以是线绘制命令和封闭区域填充命令二者。稍后,将利用图5,来描述绘制命令输入部201及绘制命令确定部202执行的处理的详情。
附图标记203代表绘制命令存储部,其用于临时保持已由绘制命令确定部202确定为细线形状的绘制命令。在打印机驱动程序107已通过向OS(103)做出获得请求而获得的RAM上,来分配绘制命令存储部203。
随后,加粗确定部204依次读出由绘制命令存储部203保持的绘制命令,并且基于绘制命令间的位置关系,来确定是否应用加粗处理。在这里,每次接收到由绘制命令确定部202确定为细线形状的绘制命令时调用加粗确定部204,然而,当绘制命令存储部203未保持绘制命令时,加粗确定部204不执行确定处理。
加粗确定部204执行的关于是否应用加粗处理的确定,不局限于基于绘制命令间的位置关系来进行确定。例如,可以基于由绘制命令确定部202确定的绘制命令的类型及图形形状,来执行加粗确定。
另一方面,通过校正已由加粗确定部204确定为加粗对象的绘制命令的绘制参数,线宽校正部205执行线宽校正。最后,PDL命令输出部206将DDI函数的绘制命令,依次转换为PDL命令,以将转换后的PDL命令输出至系统假脱机程序108。
在执行加粗确定的情况下,不依赖于绘制命令间的位置关系,而仅基于绘制命令确定部202确定的各个DDI函数的类型以及图形形状,绘制命令存储部203依次执行绘制命令的存储及输出。此外,在这种情况下,针对存储在绘制命令存储部203中的细线形状的所有绘制命令,加粗确定部204进行执行加粗处理的确定。
图3是示出用于改变本实施例中的打印机驱动程序107的设置的用户界面的示例的图。
在该图中,对话框301在经由用于执行各种打印设置的设置画面按下了按钮“处理选项”时被显示。对话框301中的列表302,显示用户可选择的各个设置项目及设置内容的列表。此外,选择的设置项目被反色显示,如附图标记303所示,并且,设置内容的可选选项被显示在下段中,如下拉菜单304所示。
在本实施例中,作为用于控制细线图形的加粗处理的指示单元,提供了设置项目“特殊细线处理”(303)。此外,作为针对“特殊细线处理”的设置内容,准备了“不做处理/级别1/级别2”。也就是说,如果“特殊细线处理”被设置为“不做处理”,则绘制命令确定部202不对任何绘制命令进行细线的确定,并且能够使任何的加粗处理无效。此外,如果“级别1”被选择,则绘制命令确定部202仅对线绘制命令执行细线确定。如果“级别2”被选择,则绘制命令确定部202对线绘制命令和封闭区域填充命令两者执行细线确定。在本实施例中,将“特殊细线处理”的初始值设置为“级别2”,然而,例如在考虑到与现有产品的兼容性的情况下,也可以适当地改变该初始值。
下面,将参照图4A至4D、5及6,来描述由打印机驱动程序107对细线形状图形执行的加粗处理的过程。
图4A至4D是示出对被确定为加粗对象的填充图形的加粗校正处理的详情的图。该处理对应于图5中的S502、S503、S504及S505。图4A及4C和图4B及4D分别示出了加粗校正处理之前和之后的图形形状及绘制参数。
在本实施例中,将描述封闭区域填充图形(封闭区域填充命令)表现矩形的情况。首先,在图4A中,用左上端坐标值(x1,y1)及右下端坐标值(x2,y2),来表现矩形。用w及h来代表该矩形的宽度及高度,通过(w,h)=(x2-x1,y2-y1)来获得w及h。在这里,如果w=1且h>n(值n是1或更大的整数值),则将该封闭区域填充图形确定为垂直细线(图4A),并且,如果h=1且w>n(值n是1或更大的整数值),则将该封闭区域填充图形确定为水平细线(图4C)。所述的坐标值,用已由打印机驱动程序107通知给OS(103)的打印分辨率的单位坐标系来描述,并且一般是600dpi等。
随后,通过在x轴方向和y轴方向上均增加1,将右下端的坐标值(x2,y2)替换为(x2+1,y2+1),从而对被确定为细线的封闭区域填充图形进行加粗校正。通过右下端坐标的此种校正,图4B及4D中用密斜线代表的区域,最后被绘制得比原始图形粗。在本实施例中,不论是垂直细线还是水平细线,均通过将x和y坐标两者同时增加1,来执行加粗校正。然而,依据对垂直细线/水平细线的确定结果,也可以执行校正,使得不在高度方向(长度方向)上加粗图形。在这种情况下,在图4A中的示例中,进行校正,使得x2和y2分别变为x2+1和y2。另一方面,在图4C中的示例中,进行校正,使得x2和y2分别变为x2和y2+1。
图5是示出本实施例中的细线校正处理的过程的流程图。首先,在S501中,绘制命令输入部201从OS 103接收DDI函数及该DDI函数的参数作为绘制命令。
<关于绘制命令是否是矩形形状的封闭区域填充命令的确定(S502)>
随后,在S502中,绘制命令确定部202检查绘制命令是否为矩形形状的封闭区域填充命令。
具体来说,首先,绘制命令确定部202确定在S501中接收到的DDI函数是否为(1)DrvFillPath( )和未指定源图像的(2)DrvBitBlt( )函数中的任意一者。然后,如果DDI函数是两函数中的任意一者,则将DDI函数确定为封闭区域填充命令(如果DDI函数不是两函数中的任意一者,则处理进入到S507)。
在这里,(1)DrvFillPath( )函数用来接收用于表现图形的轮廓的轮廓坐标值以及用来填充图形的颜色值等,作为参数。如果DDI函数是(1)DrvFillPath( ),则检查被接收作为该函数的参数的封闭区域的轮廓坐标,并且,确定封闭区域填充图形是否具有矩形形状。也就是说,检查轮廓坐标点数是否为4,以及形成轮廓的矢量是否仅具有水平分量及垂直分量。如果这些条件全部满足,则确定封闭区域填充图形具有矩形形状。如果确定封闭区域填充图形具有矩形形状,则处理进入到S503,否则,处理进入到S507。
另一方面,(2)DrvBitBlt( )函数是用来指示图像绘制的DDI函数。函数(2)DrvBitBlt( )用来接收作为实体图像的源图像(src)、src的颜色格式及大小(像素数)、以及代表图像的绘制区域的坐标信息等,作为参数。在这里,绘制区域是称为“目的地”(dest)的矩形形状的区域,并且,坐标信息被给出为矩形的左上端及右下端的坐标值。顺便提一下,dest的大小与src的大小不须要彼此一致,并且,例如在dest大于src的情况下,src通过已知的图像扩展方法来扩展,由此被绘制。在图像实体未被接收到的情况下(即src参数是NIL),DrvBitBlt( )函数变为用由另一参数指定的画笔颜色来填充dest的指令。相应地,当该函数((2)DrvBitBlt( )函数)被接收到、并且无源图像被指定时,绘制命令应当在无须检查轮廓坐标的情况下,被作为封闭区域填充命令处理,该封闭区域填充命令表现由关于dest的坐标信息代表的矩形形状。也就是说,处理在这种情况下进入到S503。顺便提一下,如果src被指定,则即使有该函数,处理也进入到S507。
<关于封闭区域填充命令是否为细线的确定(S503及S504)>
随后,绘制命令确定部202检查被确定为矩形形状的封闭区域的宽度和高度中是否有任意一者是1(S503),并且另一者是否为预定值n或更大(S504)。如果这两个条件均满足,则将矩形绘制命令确定为细线。在这里,值n是用于使细线成为校正目标的长度的阈值(1或更大的任意整数值),并且在这里被设置为n=2。
例如,在图4A中所示的形状的矩形的情况下,分别通过x2-x1及y2-y1来计算矩形的宽度及高度(如上所述,这两个坐标点的这些x1、x2、y1及y2被接收作为(1)DrvFillPath( )函数的参数)。相应地,如果x2-x1是1(S503中确定为“是”),并且y2-y1是阀值n或更大(S504中确定为“是”),则将矩形确定为细线。在如图4C所示的水平线的情况下,在S503中将高度确定为1,并且在S504中将宽度确定为阈值n或更大,并且,与图4A的情况同样地,将矩形相应地确定为细线。宽度、高度及长度不局限于这里的描述中所用的值。能够设置任意的值,只要使得能够确定封闭区域填充命令是否为细线即可。
正如上文所述,通过S502至S504中的处理,依据在S501中接收到的DDI函数的类型,以及封闭区域的宽度及高度,来确定绘制命令是否是形成细线的封闭区域填充命令(细线填充图形)。
<加粗处理(S505)>
此外,如果S503及S504中的确定结果为“是”(即绘制命令是细线的填充图形的情况),则在S505中,对细线执行加粗处理(线宽校正处理)。在加粗处理中,线宽校正部205校正矩形绘制命令的坐标值参数(S505),并且,PDL命令输出部206基于校正后的参数,来生成利输出PDL格式的矩形绘制命令。
例如,在图4A中所示的形状的矩形的情况下,线宽校正部205针对x和y两者,通过+1来增加矩形右下端的坐标值(x2,y2),并且如图4B所示,将坐标值校正为(x2+1,y2+1)。
由(2)DrvBitBlt( )函数的参数指定的绘制区域(dest)的坐标值,与图4A中所示的矩形完全类似,并且,在未指定src的情况下,对于DrvBitBlt( )函数,S503及S504中的确定处理也能够是相同的。
在本实施例中,构造如下的结构,即使得绘制命令确定部202仅基于各单个的DDI函数的类型及形状,来执行加粗确定。相应地,图2中所示的绘制命令存储部203仅依次执行绘制命令的存储及读取,并且,加粗确定部204不执行处理。因此,在图5中的流程图中,未明确描述绘制命令存储部203及加粗确定部204(此二部在第二实施例中及之后发挥作用)。
<在不是矩形形状的封闭区域填充命令的情况下的处理(S507及S508)>
下面,将描述在S502中为“否”的情况下(即在S501中接收到的绘制命令不是矩形形状的封闭区域填充命令的情况下)的处理。
在S507中,绘制命令确定部202检查绘制命令是否为绘制细线的线绘制命令。也就是说,绘制命令确定部202检查DDI函数是否为DrvStrokePath( )。此外,如果该线绘制命令的线宽参数是1(预定值),则绘制命令确定部202确定绘制命令是针对细线的,并且,处理进入到S508。另一方面,如果DDI函数不是DrvStrokePath( ),或者如果线绘制命令的线宽参数不是1(预定值)(S507:否),则处理进入到S506。在S508中,通过+1来校正线宽参数。
顺便提一下,在本实施例中,将具有宽度1(预定值)的线确定为细线(校正目标),并进一步将用于加粗图形的校正值固定为1,然而,基于设备的再现性特性等,也可以将该预定值及校正值设置为任意值。
最后,在S507中为“否”的情况下,生成与绘制命令相对应的PDL命令,然后,处理终止(S506)。
顺便提一下,在图3中的“特殊细线处理”被设置为“不做处理”的情况下,S502及S507的确定结果变为始终是“否”,并且,不将任何绘制命令确定为细线。此外,如果“特殊细线处理”被设置为“级别1”,则绘制命令确定部202进行控制,使得仅在S502中的确定始终为“否”。
图6是示出本实施例中的、针对绘制命令的类型与图形形状的组合来执行加粗处理的条件的表。如该表所示,如果绘制命令是线绘制命令,则在两种情况下,即在图形形状仅由水平/垂直分量形成的情况下(情况1),以及在图形形状包括倾斜分量的情况下(情况2),均通过校正线宽参数来执行加粗处理。另一方面,在绘制命令是封闭区域填充命令的情况下,在本实施例中,仅对仅由水平/垂直分量形成的图形来执行加粗处理(情况3),并且,不对包括倾斜分量的图形执行加粗处理(情况4)。然而,在准许图形形状的确定处理对处理速度的延迟的情况下,也可以对包括倾斜分量的图形来执行加粗处理(情况4)。用户能够经由UI来确定是否执行加粗处理。
正如上文所述,根据本实施例,也能够对用矩形形状的填充图形(封闭区域填充命令)所表现的细线应用加粗处理。因此,即使对于未使用线绘制命令而通过应用软件绘制的线图形,也能够执行具有高再现性的输出。
此外,正如上面参照图3及6所述,能够通过用户的指令,来设置加粗处理的目标。结果,能够防止由加粗处理导致的整个图像处理的处理速度的下降。
第二实施例
在第一实施例中,被确定为细线的封闭区域填充图形无条件地经历校正处理,然而,也可以构造结构,以使得能够依据条件来选择是否执行校正处理。在以下描述的本实施例中,在经历加粗处理的图形与相邻图形交叠的情况下,不执行加粗处理。例如,在本图形是垂直线且相邻图形也是垂直线的情况下,不执行加粗处理。这是因为细线将变为极粗的线。然而,在本图形是垂直线而相邻图形是水平线的情况下,例外地对本图形进行加粗。这是因为,虽然这样会发生两图形变为连续的不良效果,但是若不这样,垂直线可能因不加粗而消失的不良效果会更加严重。
在本实施例中,将多个封闭区域填充图形之间的相邻状态作为校正处理的条件,来对加粗确定结果进行切换。
下面,将参照图7A及7B、8A至8D、9及10,来描述针对已被确定为细线形状的多个封闭区域填充图形来切换加粗确定结果的方法,其中,切换依赖于封闭区域填充图形之间的位置关系。
首先,将参照图7A至8D,来描述加粗处理的影响,其中,影响对应于多个封闭区域填充图形之间的相邻状态。
图7A及7B示出了两个矩形彼此交叉的各情况。例如,在形成诸如分类账页等的格线时,矩形可以变为这样的位置关系。在这种情况下,即使在执行加粗处理之后,对双方图形的影响也是小的。(也就是说,交叠状态不发生改变。未彼此交叠的图形不会因加粗处理而变为交叠的。)相应地,可以执行加粗处理。
另一方面,图8A至8D示出了如下的各情况,其中,执行绘制,使得位于相同水平/垂直方向(倾斜)的多个矩形彼此相邻。当对图8A及8C中所示的矩形执行了加粗处理时,矩形变为图8B及8D中所示的矩形。如图8B及8D所示,未彼此交叠的填充区域最后彼此连接,从而导致出乎预期的绘制结果。
相应地,在本实施例中,首先,绘制命令确定部202进行的确定为绘制命令是细线的结果(多个矩形绘制命令及线绘制命令),被临时保持在绘制命令存储部203中。之后,加粗确定部204基于双方的绘制命令的打印位置,来检查水平/垂直方向(倾斜)的同一性以及加粗处理之后的连接/交叠状态,并且切换加粗确定结果。
下面,将参照图9及10,来描述本实施例中的打印机驱动程序107执行的细线校正处理的过程。图9示出了一页的绘制处理的过程。图10示出了图9中的S915中的处理过程的详情。
在本实施例中,针对仅由水平或垂直分量形成的线绘制命令,加粗确定部204依据与其他线绘制命令的相邻状态,来切换是否执行加粗处理。
图9中的S901、S903、S911及S914各步骤,类似于第一实施例中的图5中的S501、S502、S507及S508各步骤,并且,将相应地省略描述。
如果在S911中,DDI函数被确定为绘制细线的线绘制命令,则绘制命令确定部202确定该细线是否仅由水平分量形成(S912)。如果该细线不是仅由水平分量形成,则绘制命令确定部202确定该细线是否仅由垂直分量形成(S913)。通过基于被指定作为线绘制命令的参数的起始点及结束点处的坐标值,获得细线的倾斜度,来执行关于细线是否仅由水平分量和垂直分量中的任意一者形成的确定(因为此为一般方法,故省略描述)。
如果确定细线仅由水平分量或垂直分量形成(S912或S913:是),则处理相应地进入到S910或S906,以设置细线是水平线还是垂直线。稍后,将描述S910及S906各个步骤中的处理的详情。
然后,类似于加粗目标的封闭区域填充命令,在S907中,将线绘制命令保持在绘制命令存储部203中,以检查该绘制命令的相邻状态。
此外,在S902至S910及S912至S913中,依次接收一页的绘制命令。只要潜在加粗目标的矩形绘制命令及线绘制命令是连续的,绘制命令存储部203就在S907对这些命令进行假脱机存储。然后,在S915中,检查在S907中假脱机存储的绘制命令的相邻状态,并且,如果不存在相邻图形,则加粗用这些绘制命令来表现的图形形状。也就是说,在S915中,确定细线的封闭区域填充命令(细线填充图形)或者细线绘制命令是否满足预设条件,并且,如果条件满足,则对细线填充图形或线绘制命令执行加粗处理。
在本实施例中,绘制命令确定部202执行S902至S906、S908至S913及S917中的各个步骤,并且,绘制命令存储部203执行S907。此外,由加粗确定部204、线宽校正部205及PDL命令输出部206,来执行S915(详见图10)。PDL命令输出部206还执行S916中的处理,以将不是加粗对象的绘制命令转换为PDL命令。
在这里,假定本实施例中的加粗确定处理在如下的范围内执行,在所述范围内,绘制命令输入部201从OS接收的绘制命令的顺序,和PDL命令输出部206生成的PDL命令的顺序彼此一致。相应地,绘制命令存储部203在如下的范围内对对象命令进行假脱机存储,在所述范围内,加粗潜在目标的绘制命令(矩形绘制命令或者仅水平/垂直分量的线绘制命令)是连续的。以不是加粗目标的绘制命令作为触发信号,加粗确定部204针对假脱机存储的绘制命令开始加粗确定处理。
另一方面,在应用于能够准许处理速度的延迟的系统的情况下,可以进行构造,以使得绘制命令存储部203假脱机存储直至页面结束的加粗潜在目标的所有绘制命令,并且,加粗确定部204以页面结束作为触发信号来开始加粗确定处理。
随后,在S903至S905中,确定绘制命令是否是形成垂直细线的矩形,并且同样地,在S903及S908至S909中,确定绘制命令是否是形成水平细线的矩形。然而,因为这里的确定方法可以与第一实施例中类似,所以将省略描述。
然而,在本实施例中,为了准备参照细线的水平/垂直方向的S915中的确定处理(稍后描述),关于是否为垂直细线的确定结果被设置为标志“Vert”,并且被保持作为矩形绘制命令的参数。也就是说,对Vert进行设置,使得如果矩形是垂直细线,则在S906中Vert=1,而如果矩形是水平细线,则在S910中Vert=0。在随后的S907中,针对被确定为细线形状(垂直细线或水平细线)的矩形,进行矩形绘制命令的假脱机存储,其中,矩形绘制命令包括诸如左上端坐标点、右下端坐标点及填充颜色值等的绘制参数,以及标志“Vert”。
如上所述,通过S901至S913中的处理,首先,确定从OS接收到的绘制命令是否为细线,其中,针对单个的封闭区域绘制命令以及单个的线绘制命令,逐个命令地执行所述确定。然后,针对被确定为细线的绘制命令,单个地确定绘制命令是水平线还是垂直线。依据该确定,对各绘制命令设置绘制命令是水平线还是垂直线,然后,将绘制命令存储在绘制命令存储部203中。
在本实施例中,在S907中,绘制命令存储部203对绘制命令进行假脱机存储。在以下3个定时之一,对这些假脱机存储的绘制命令执行加粗处理(S915)。也就是说,(1)当页面已结束时(S902:是);(2)当接收到的绘制命令的DrvStrokePath( )不是细线时(S911:否);(3)如果接收到的细线的绘制命令的DrvStrokePath( )既不是水平线也不是垂直线(S913:否)并且在该绘制命令的线宽被校正(S914)之后。以这种方式,通过以除页面结束以外的定时也执行加粗处理,能够减轻主计算机101上的处理负荷。
每次接收到不是细线形状的矩形绘制命令或者不是矩形绘制命令的绘制命令时,或者当接收到诸如页面结束命令等的页面控制命令时,执行随后的步骤S915。顺便提一下,如果在该时刻未对细线形状的封闭区域填充图形进行假脱机存储,则不执行加粗处理(后述S1001中确定为“否”)。
最后,在S916中,生成与不是加粗目标的绘制命令组相对应的PDL命令,并且,如果该PDL命令不是页面结束命令,则处理进入到S901,以处理随后的绘制命令(S917)。
下面,将参照图10中的流程图,来描述与图9中的S915相对应的步骤的详情。
在图10中,加粗确定部204执行S1001至S1011、S1014及S1015各个步骤;线宽校正部205执行S1012;并且,PDL命令输出部206执行S1013及S1016。
首先,加粗确定部204检查是否在绘制命令存储部203中对绘制命令进行了假脱机存储(S1001),并且,如果不存在绘制命令,则加粗确定部204终止处理。另一方面,如果存在绘制命令,则加粗确定部204将1设置为用于识别假脱机存储的绘制命令的变量k(S1002),并且依次读取第k个绘制命令(以下称为“绘制命令(k)”)(S1003)。
在随后的S1004中,加粗确定部204将用于确定是否对绘制命令(k)应用加粗处理的标志“校正标志”,设置为1(真),并且将用于识别下一个绘制命令为比较对象的变量m,设置为1。然后,在S1005至S1010中,依次检查绘制命令(k)与其他绘制命令(m)的位置关系,以便确定是否校正绘制命令(k)。
也就是说,在S1005至S1006中,读取假脱机存储的绘制命令(m),直到不再有剩余图形为止。如果k=m(即绘制命令(k)=绘制命令(m)),则跳过绘制命令(m),因为这两个绘制命令是同一矩形(同一绘制命令)(S1007:是)。如果这两个绘制命令不是同一矩形(S1007:否),则检查绘制命令(k)与绘制命令(m)之间的位置关系(S1008至S1009)。
如果绘制命令(k)和绘制命令(m)两者均或者是水平线或者是垂直线(S1008:是),并且这些绘制命令被确定为彼此相邻(S1009:是),则处理进入到S1010。在S1010中,将“校正标志”设置为0,并且将“m”增加1,以读取下一绘制命令。
直到在S1005中确定不再有其他绘制命令时为止,各个步骤中的处理得到执行,并且,如果最后在S1011中“校正标志”是1,则将绘制命令(k)确定为加粗目标。
顺便提一下,在S1008中,参照在步骤S906或S910中确定的Vert标志,在各绘制命令之间对水平/垂直方向进行比较。如果绘制命令为相同方向,则在S1009中,比较绘制命令之间的位置关系。
在随后的S1009中的相邻确定中,为了确定在加粗处理之后图形是否彼此相邻,针对两右下端坐标校正之后的值,将读出的两个绘制命令的右下端坐标进行比较。下面,将以绘制命令是水平线(水平细线)的情况为例,来描述相邻确定的方法。
在这里,将各个绘制命令在校正之后的坐标值表示如下。
绘制命令(k):
左上端点=(xa1,ya1)
右下端点=(xa2,ya2)
绘制命令(m):
左上端点=(xb1,yb1)
右下端点=(xb2,yb2)
顺便提一下,当读出的绘制命令是线绘制命令时,根据用该绘制命令的参数表示的两端(起始点,结束点)的坐标以及线宽,来获得左上端点及右下端点。例如,在用起始点(xs,ys)、结束点(xe,ye)及线宽w给出的线绘制命令的情况下,左上端点及右下端点如下。
水平线段:
左上端点=(xs,ys)
右下端点=(xe,ye+w)
垂直线段:
左上端点=(xs,ys)
右下端点=(xe+w,ye)
通过如以上所表现的绘制命令之间的相邻确定方法,首先,检查ya1和yb1是否相等。如果相等,则因为位置关系有可能如图8A所示,所以,进一步检查xa2<xb1和xb2<xa1中是否有任何一者满足。如果这两个条件都不满足,则确定这些图形彼此相邻或交叠,并且,绘制命令(k)不作为加粗目标。
另一方面,如果ya1和yb1不相等,则检查位置关系是否如图8C所示。也就是说,检查ya2<yb1和yb2<ya1中是否有任何一者满足。同样,在这种情况下,如果这两个条件都不满足,则确定这些图形彼此相邻或交叠,并且,绘制命令(k)不作为加粗目标。
最后,对于被确定为加粗目标的绘制命令(k),线宽校正部205通过+1来校正矩形右下端的坐标值(S1012),并且,PDL命令输出部206基于校正后的参数来生成PDL命令(S1013)。然后,在S1014中,如果存在假脱机存储的绘制命令,则将′k′增加1,以便也对随后的绘制命令同样地执行加粗确定处理(S1015),并且,处理返回到S1003。
另一方面,在通过对所有假脱机存储的绘制命令执行加粗确定处理、而生成PDL命令之后,PDL命令输出部206删除在绘制命令存储部203中保持的所有绘制命令(S1016),并且,该处理终止。
如上所述,依据多个填充图形的绘制位置,来确定是否使绘制命令作为加粗目标,从而,能够防止由不必要的加粗处理导致的问题。
此外,从单个的绘制命令中指定加粗目标,并且,逐对象地执行加粗处理。这样,确实能够缩减校正目标,而不会对诸如图像及字符等的其他绘制对象进行错误确定。
第三实施例
在第二实施例中,将多个封闭区域填充图形的相邻状态作为了校正确定条件,然而,加粗处理的确定条件不局限于此。在本实施例中,依据在绘制封闭区域填充图形时的逻辑运算(ROP:光栅运算,RasterOPeration)的类型,来切换加粗确定的结果。也就是说,确定在绘制封闭区域填充图形时的逻辑运算是否为预定逻辑运算,并且,与该确定结果相对应地进行对是否执行加粗处理的切换。
例如,当指定了用于执行待绘制的矩形的颜色(源)与背景(目的地)之间的逻辑运算的ROP时,通过加粗矩形来改变逻辑运算的结果,这样,在该矩形和另一绘制命令彼此交叠的情况下,结果得到出乎预期的绘制。在这种情形下,在本实施例中,即使是已被确定为细线形状的矩形,在不是被指定用于覆盖的ROP的情况下也不被作为校正目标。
图11是示出本实施例中的细线校正处理的过程的流程图。在该图中,S1101至S1104各步骤类似于第一实施例中的加粗目标确定处理(S501至S504),此外,S1106及S1107分别对应于S505及S506。虽然为了描述简便,假定本实施例中的绘制命令确定部202不使线绘制命令作为加粗处理的目标,但是,也能够构造使线绘制命令作为目标的结构。本实施例中的加粗确定部204在S1105中,检查针对细线矩形绘制命令指定的ROP的类型,并且,如果ROP是覆盖(ROP3类型=204,SRCCOPY),则将ROP确定为校正目标。
在本实施例中,仅将被指定用于覆盖的ROP确定为加粗的目标,然而,本发明的要旨不局限于此。
第四实施例
在第二及第三实施例中,使多个封闭区域填充图形的相邻状态或者ROP类型作为了校正处理条件。在本实施例中,在能够预先指定形成格线的图形的颜色值的情况下,依据图形的颜色值来切换加粗确定的结果。
图12是示出本实施例中的细线校正处理的过程的流程图。S1205以外的各步骤可以类似于第三实施例中的图11中的各步骤。本实施例中的加粗确定部204检查针对矩形绘制命令指定的颜色值C1,并且,如果颜色值C1与预先指定的颜色值C2相同,则加粗确定部204将矩形绘制命令确定为校正目标(S1205)。在本实施例中,作为用于指定打印机驱动程序的处理选项的“特殊细线处理”的设置项目,进一步指定颜色值C2。
此外,没有必要将颜色值2限定为一种颜色,并且,可以采用如下的结构,使得例如能够指定色调或亮度等的范围,并且只要矩形的颜色值在颜色值的范围之内,就能够执行校正。
如上所述,根据本实施例,通过提供用于指定要作为加粗目标的填充图形的属性(颜色值)的手段,能够例如仅加粗用特定颜色绘制的格线。
第五实施例
在第一至第四实施例中,通过在主计算机101上运行并且生成用PDL描述的PDL数据的打印机驱动程序107,对实施例进行了描述,但是,本发明不局限于此。还能够通过接收PDL数据并且执行图像处理的打印机110,来实施本发明。也就是说,执行加粗处理,使得检测由PDL数据形成细线形状的矩形绘制命令,并且生成校正了作为矩形绘制命令的参数的打印坐标的显示列表。
图13是示出本实施例中的打印机控制器1301的模块结构的图。
在该图中,实现本发明的控制程序组被存储在程序ROM 1302中,并且由CPU(未示出)读取来执行。控制程序包括接收PDL数据并且将PDL数据存储到接收缓冲器1310中的打印数据接收部1304,以及分析PDL数据的PDL解释器1305等。控制程序还包括DL生成部1306以及页面图像生成部1307,其中,DL生成部1306基于PDL解释器1305的分析结果,来生成中间格式的显示列表(以下称为“DL”(Display List)),并且将DL逐页存储到DL存储器1311中,并且,页面图像生成部1307基于DL来生成页面图像。页面图像被压缩并存储到页面假脱机存储器1312中,并且被引擎控制部1308作为视频信号输出至打印机引擎1309。
在本实施例中,PDL解释器1305执行与图2中的模块202至206相对应的处理。仅须要用PDL数据来替换从DDI接收到的绘制命令,并且用DL来替换输出的PDL数据。
其他实施例
还可以由读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统或装置的计算机(或者诸如CPU或MPU等的设备),来实现本发明的各方面;并且可以利用由通过例如读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统或装置的计算机来执行各步骤的方法,来实现本发明的各方面。为此,例如经由网络或从充当存储设备的各种类型的记录介质(例如,计算机可读介质)将程序提供给计算机。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不局限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使所述范围涵盖所有的此类变型例以及等同结构和功能。
Claims (4)
1.一种图像处理装置,该图像处理装置包括:
确定要用颜色来填充的封闭区域是否为具有4个坐标点的矩形的模块;
在确定所述封闭区域为具有4个坐标点的矩形的情况下、提取所述4个坐标点当中的存在于对角线上的2个坐标点的模块;
确定所提取的2个坐标点在x坐标或y坐标上的距离是否为一个像素的模块;
在确定所述距离为一个像素的情况下、确定所述封闭区域为细线的模块;以及
扩展模块,其在所述封闭区域被确定为细线的情况下,扩展所述封闭区域的较短边。
2.根据权利要求1所述的图像处理装置,其中,如果被确定为细线的所述封闭区域与另一封闭区域相邻,则所述扩展模块不扩展所述封闭区域的所述较短边。
3.一种图像处理方法,该图像处理方法包括:
确定要用颜色来填充的封闭区域是否为具有4个坐标点的矩形的步骤;
在确定所述封闭区域为具有4个坐标点的矩形的情况下、提取所述4个坐标点当中的存在于对角线上的2个坐标点的步骤;
确定所提取的2个坐标点在x坐标或y坐标上的距离是否为一个像素的步骤;
在确定所述距离为一个像素的情况下、确定所述封闭区域为细线的步骤;以及
扩展步骤,在所述封闭区域被确定为细线的情况下,扩展所述封闭区域的较短边。
4.根据权利要求3所述的图像处理方法,其中,如果被确定为细线的所述封闭区域与另一封闭区域相邻,则所述扩展步骤不扩展所述封闭区域的所述较短边。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010-187223 | 2010-08-24 | ||
JP2010187223A JP5610923B2 (ja) | 2010-08-24 | 2010-08-24 | 画像処理装置、画像処理方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102436357A CN102436357A (zh) | 2012-05-02 |
CN102436357B true CN102436357B (zh) | 2014-12-10 |
Family
ID=45696864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110243474.5A Active CN102436357B (zh) | 2010-08-24 | 2011-08-23 | 图像处理装置及图像处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8717622B2 (zh) |
JP (1) | JP5610923B2 (zh) |
CN (1) | CN102436357B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6282161B2 (ja) * | 2013-05-15 | 2018-02-21 | キヤノン株式会社 | 画像処理装置、その制御方法およびプログラム |
CN103593862A (zh) * | 2013-11-21 | 2014-02-19 | 广东威创视讯科技股份有限公司 | 一种图像显示方法及控制单元 |
JP6452504B2 (ja) * | 2015-03-10 | 2019-01-16 | キヤノン株式会社 | 画像形成装置、画像形成方法、プログラム |
JP6671188B2 (ja) * | 2016-02-17 | 2020-03-25 | キヤノン株式会社 | 画像形成装置、方法およびプログラム |
CN113495663B (zh) * | 2021-07-05 | 2022-03-11 | 北京华大九天科技股份有限公司 | 绘制矩形版图的方法、装置、存储介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098387A (zh) * | 2006-06-29 | 2008-01-02 | 佳能株式会社 | 图像处理设备和图像处理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0885232A (ja) * | 1994-09-14 | 1996-04-02 | Canon Inc | 図形処理装置及び方法 |
JPH11170655A (ja) | 1997-12-12 | 1999-06-29 | Canon Inc | 画像出力装置及び方法 |
US6259821B1 (en) * | 1998-10-27 | 2001-07-10 | Xerox Corporation | PDL operator overloading for line width management of lines that intersect filled objects |
US7149826B2 (en) | 2002-08-05 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Peripheral device output job routing |
JP4506346B2 (ja) * | 2004-08-12 | 2010-07-21 | 富士ゼロックス株式会社 | 画像処理装置 |
JP2006072834A (ja) | 2004-09-03 | 2006-03-16 | Canon Inc | 画像形成装置および方法 |
US7602529B2 (en) * | 2004-09-07 | 2009-10-13 | Eastman Kodak Company | Method and system for controlling printer text/line art and halftone independently |
JP4623290B2 (ja) * | 2005-07-01 | 2011-02-02 | 富士ゼロックス株式会社 | 画像処理装置および画像処理方法、画像処理プログラム、記憶媒体 |
JP2009105827A (ja) * | 2007-10-25 | 2009-05-14 | Canon Inc | 印刷制御装置 |
JP4963674B2 (ja) * | 2008-02-21 | 2012-06-27 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
-
2010
- 2010-08-24 JP JP2010187223A patent/JP5610923B2/ja not_active Expired - Fee Related
-
2011
- 2011-07-20 US US13/186,554 patent/US8717622B2/en active Active
- 2011-08-23 CN CN201110243474.5A patent/CN102436357B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098387A (zh) * | 2006-06-29 | 2008-01-02 | 佳能株式会社 | 图像处理设备和图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8717622B2 (en) | 2014-05-06 |
US20120050761A1 (en) | 2012-03-01 |
JP5610923B2 (ja) | 2014-10-22 |
CN102436357A (zh) | 2012-05-02 |
JP2012048296A (ja) | 2012-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6029344B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
CN102436357B (zh) | 图像处理装置及图像处理方法 | |
CN102970456B (zh) | 图像形成方法及图像形成装置 | |
KR20030005277A (ko) | 형상 프로세서 | |
JP5534867B2 (ja) | ラスタ画像を生成する装置、ラスタ画像生成方法、およびプログラム | |
US20180082160A1 (en) | Image processing apparatus and image processing method | |
JP2017147620A (ja) | 画像形成装置、方法およびプログラム | |
KR101869302B1 (ko) | 래스터 이미지 변환 장치, 화상독취장치, 래스터 이미지 변환 방법 및 컴퓨터 판독가능 기록매체 | |
JP2021083114A (ja) | 画像処理システム、画像処理方法、及び画像処理装置 | |
US20200097783A1 (en) | Image processing apparatus, image processing method, and storage medium | |
JP2024102221A (ja) | 画像処理装置、画像処理方法ならびにプログラム | |
EP3032498B1 (en) | Image processing apparatus, image processing method, and a program | |
CN107203354B (zh) | 图像处理设备及其控制方法 | |
JP6904717B2 (ja) | 画像処理装置、その制御方法、およびプログラム | |
JP2008201058A (ja) | 画像形成装置 | |
JP6230268B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN109690572B (zh) | 使用过扫描rip产生中心扫描图像输出的方法 | |
JP5012871B2 (ja) | 画像処理装置、画像形成装置、及び画像処理プログラム | |
JP5424546B2 (ja) | 画像処理装置及び画像形成システム | |
JP2004334533A (ja) | 画像処理装置および画像処理方法 | |
JP6926394B2 (ja) | 印刷装置及びプログラム | |
JP2017087514A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
JP4991429B2 (ja) | 着色材料使用量削減プログラム | |
JP2023033977A (ja) | 画像形成装置、画像形成装置の制御方法、およびプログラム | |
JP2016021641A (ja) | 情報処理装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |