CN101625764B - 图像生成装置、图像生成方法及打印装置 - Google Patents

图像生成装置、图像生成方法及打印装置 Download PDF

Info

Publication number
CN101625764B
CN101625764B CN2009101330277A CN200910133027A CN101625764B CN 101625764 B CN101625764 B CN 101625764B CN 2009101330277 A CN2009101330277 A CN 2009101330277A CN 200910133027 A CN200910133027 A CN 200910133027A CN 101625764 B CN101625764 B CN 101625764B
Authority
CN
China
Prior art keywords
gradual change
area
unit
radiation
radiation gradual
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
Application number
CN2009101330277A
Other languages
English (en)
Other versions
CN101625764A (zh
Inventor
次村浩一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Publication of CN101625764A publication Critical patent/CN101625764A/zh
Application granted granted Critical
Publication of CN101625764B publication Critical patent/CN101625764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Color, Gradation (AREA)

Abstract

本发明提供了图像生成装置、图像生成方法及打印装置。该图像生成方法包括下述步骤:从用于绘制椭圆放射渐变的指令提取椭圆形状参数(其指定椭圆形状)、渐变图案参数(其指定要在椭圆形状中绘制的渐变图案)以及绘制区域参数(其指定绘制区域);基于椭圆形状参数生成用于将椭圆形状变换成正圆形状的变换矩阵;计算变换矩阵的逆矩阵;使用变换矩阵变换渐变图案参数;使用变换矩阵对包含绘制区域的第一区域进行变换;基于变换后的渐变图案参数在包含变换后的第一区域的第二区域中绘制正圆形状中的放射渐变;并且通过使用逆矩阵对第二区域(其中已经绘制了放射渐变)进行逆变换生成用于绘制区域的椭圆放射渐变。

Description

图像生成装置、图像生成方法及打印装置
技术领域
本发明涉及一种图像生成装置、图像生成方法及打印装置。
背景技术
随着近年来使用计算机的文档准备系统和文档打印系统的高性能的发展,越来越多的用户要求实现复杂的绘图表现。例如,使用了大量的渐变(在规定的绘制区域中逐渐地改变颜色),用于表现效果、表现三维形状等等。
为了使用打印机打印此种渐变(即,具有渐变的图像)或者在显示器上显示此种渐变,必需生成位图格式的渐变图案并且将渐变图案绘制在页存储器或者帧存储器上。通过连续地绘制(重叠)在色值上略微不同的多个区域,同时逐渐地位移每个区域的绘制位置来执行渐变的绘制。由于不得不为绘制确定和指定(要用同一(统一的)色值绘制的)这样的区域中的每一个,所以这样的渐变的绘制要求复杂的计算。
在这样的情况下,已经提出了各种装置,以便于绘制渐变,同时减少与渐变的绘制有关的负荷。例如,在日本专利临时公开HEI11-31231(在下文中称其为“专利文献#1”)中描述的图像形成装置(能够绘制同心圆渐变)通过如下地执行渐变绘制来减少用于渐变绘制的负荷:首先为每根扫描线确定颜色变化点(在所述颜色变化点中的每个点处色值发生变化),然后用统一的色值绘制(在扫描线上的)两个颜色变化点之间的每根线段。
发明内容
同时,近来已经将XML文件规格(在下文中简单地称其为“XPS”)制定为用于描述电子文档的PDL(页面描述语言),并且大量支持XPS的产品被投入市场。在XPS中,放射渐变画笔(RadialGradientBrush)元素能够在文档中被描述为用于绘制椭圆放射渐变的图像绘制指令,由此使得更复杂的渐变表现成为可能。
但是,虽然在专利文献#1中详细说明了绘制同心圆渐变的方法,但是文档(在下文中,还称其为目标数据)没有包括关于用于绘制椭圆放射渐变的技术的描述。如果在绘制椭圆放射渐变的处理中基于椭圆形状的轨迹计算颜色变化点(在颜色变化点周围,使用不同的色值来绘制),则由于表示椭圆形状的轨迹的等式已经很复杂了所以需要进行极其复杂的计算,由此与椭圆放射渐变的绘制有关的(绘制渐变的)装置上的负荷变得极重。
考虑到上述问题做出的本发明在下述方面是有优势的,即,能够提供能够生成椭圆放射渐变同时减少与渐变的绘制相关的负荷的图像生成装置、图像生成方法及打印装置。
根据本发明的一方面,提供了一种图像生成装置,该图像生成装置包括:目标数据接收单元,该目标数据接收单元接收包括用于绘制椭圆放射渐变的图像绘制指令的目标数据;获取单元,该获取单元从接收到的目标数据获取图像绘制指令;提取单元,该提取单元从获取的图像绘制指令提取指定椭圆形状的椭圆形状参数、指定要在椭圆形状中绘制的渐变图案的渐变图案参数、以及指定其中绘制椭圆放射渐变的绘制区域的绘制区域参数;变换矩阵生成单元,该变换矩阵生成单元基于椭圆形状参数生成用于将椭圆形状变换为正圆形状的变换矩阵;逆矩阵计算单元,该逆矩阵计算单元计算变换矩阵的逆矩阵;第一变换单元,该第一变换单元使用变换矩阵变换渐变图案参数;第二变换单元,该第二变换单元使用变换矩阵变换第一区域(包含由通过提取单元提取的绘制区域参数指定的绘制区域);绘制单元,该绘制单元基于通过第一变换单元变换的变换后的渐变图案参数在第二区域中绘制用于通过利用变换矩阵的变换获得的正圆形状的放射渐变,其中第二区域包含通过第二变换单元变换的变换后的第一区域;以及渐变生成单元,该渐变生成单元通过使用逆矩阵对第二区域(其中已经通过绘制单元绘制了正圆形状中的放射渐变)进行逆变换来在绘制区域中生成椭圆放射渐变。
使用如上构造的图像生成装置,当输入用于绘制椭圆放射渐变的指令作为图像绘制指令时,由变换矩阵生成单元生成用于将椭圆形状变换成正圆形状的变换矩阵。使用该变换矩阵,由第一变换单元变换渐变图案参数(其指定要在椭圆形状中绘制的渐变图案),而由第二变换单元变换第一区域(其包含绘制区域,为所述绘制区域绘制了椭圆放射渐变)。在第二区域中(其包含变换后的第一区域),基于通过由第一变换单元进行变换之后的渐变图案参数由绘制单元绘制通过由变换矩阵进行变换获得的正圆形状中的放射渐变(正圆放射渐变)。
如上,在输入用于绘制椭圆放射渐变的指令之后,首先执行正圆放射渐变的绘制(而没有直接绘制椭圆放射渐变),由此能够基于正圆的轨迹计算颜色变化点(在颜色变化点周围绘制不同的颜色)。由于与直接绘制椭圆放射渐变的情况相比能够简化计算,所以能够显著地减少与渐变的绘制有关的负荷。
此外,由于为第二区域(其包含转换后的第一区域)执行正圆放射渐变的绘制,所以能够至少为与绘制区域相对应的区域绘制正圆放射渐变。通过设置第二区域以包含与绘制区域相对应的整个区域并且使其小于正圆形状的整个区域(尺寸),能够使为其绘制了正圆放射渐变的区域变得较小并且能够进一步减少与渐变的绘制有关的负荷。
同时,通过逆矩阵计算单元计算由变换矩阵生成单元生成的变换矩阵的逆矩阵,并且通过使用逆矩阵对第二区域(其中已经通过绘制单元绘制了正圆放射渐变)进行逆变换,由渐变生成单元为绘制区域生成椭圆放射渐变。利用此种构造,能够容易地为由图像绘制指令指定的绘制区域(应为所述绘制区域绘制椭圆放射渐变)生成由包括在图像绘制指令中的参数指定的椭圆放射渐变。因此,能够获得能够生成椭圆放射渐变同时减少与渐变的绘制有关的负荷的图像生成单元。
优选地,图像生成装置进一步包括第一矩形区域设置单元,该第一矩形区域设置单元将包含整个绘制区域的第一矩形区域设置为第一区域。
利用如上所构造的图像生成装置,能够实现以下效果。由于通过第一矩形区域设置单元将包含整个绘制区域(为所述绘制区域绘制了椭圆放射渐变)的第一矩形区域设置为要由第二变换单元使用变换矩阵进行变换的第一区域,所以能够对矩形区域(第一矩形区域)执行通过第二变换单元进行的变换。换言之,能够仅通过变换矩形区域(第一矩形区域)的四个顶点的坐标来进行通过第二变换单元进行的变换。因此,即使当绘制区域具有复杂的形状时,也能够将通过第二变换单元进行的变换所需要的计算量保持较小,由此能够进一步减少与渐变的绘制有关的负荷。
优选地,绘制单元被构造为以用于图像绘制的扫描线为单位绘制放射渐变,并且图像生成装置进一步包括第二矩形区域设置单元,该第二矩形区域设置单元将第二矩形区域设置为第二区域,其中该第二矩形区域包含由第二变换单元变换的变换后的第一区域的全部并且具有与扫描线平行的边。
利用如上所构造的图像生成设备,能够实现以下效果。由于绘制单元被构造为以用于图像绘制的扫描线为单位绘制放射渐变并且第二矩形区域设置单元将第二矩形区域(包含由第二变换单元进行变换之后的整个第一区域并且具有与扫描线平行的边)设置为第二区域(其中由绘制单元绘制正圆放射渐变),所以绘制单元以扫描线为单位为是矩形形状的且与扫描线平行的第二矩形区域执行椭圆放射的绘制。因此,能够使每条扫描线上的第二矩形区域的范围对于与第二矩形区域相交的所有扫描线来说相等,由此能够使每条扫描线上的用于绘制的开始位置和结束位置的计算变得更加简单并且能够进一步减少与渐变的绘制有关的负荷。
优选地,通过确定多个正圆来执行为正圆形状绘制放射渐变,要用要用统一的颜色绘制所述多个正圆中的每一个并且所述多个正圆的颜色彼此不同,图像生成装置进一步包括正圆选择单元,该正圆选择单元选择所述多个正圆当中的一个或者多个正圆,所选择的一个或多个正圆对于通过绘制单元绘制第二区域中的放射渐变是必要的,并且绘制单元基于通过正圆选择单元选择的正圆在第二区域中绘制正圆形状中的放射渐变。
利用如上所构造的图像生成装置,能够实现以下效果。在通过确定要用统一的色值绘制每个正圆来执行正圆放射渐变的绘制,其中所述统一的色值与用于渐变的绘制的每个色值有关的情况下,由正圆确定单元确定正圆,通过绘制单元用在第二区域中绘制渐变所需要的色值绘制该正圆,并且基于已确定的正圆通过绘制单元在第二区域中绘制正圆放射渐变。由于为用在第二区域中的渐变绘制所需要的色值(在用于正圆放射渐变的绘制的所有色值当中)绘制的正圆执行绘制处理而没有指定不需要的正圆(用不需要的色值绘制的正圆)或者为不需要的正圆执行绘制处理,因此能够进一步减少与渐变的绘制有关的负荷。
优选地,目标数据接收单元被构造为接收根据XML文件规格描述的目标数据,并且图像生成装置进一步包括指令判断单元,如果图像绘制指令包括放射渐变画笔元素,则该指令判断单元判断图像绘制指令包括用于绘制椭圆放射渐变的指令,并且提取单元从放射渐变画笔元素提取椭圆形状的中心坐标、长轴半径和短轴半径作为椭圆形状参数,而从放射渐变画笔元素中提取椭圆放射渐变的中心坐标作为渐变图案参数。
利用如上所构造的图像生成装置,能够实现下面的效果。在由目标数据接收单元接收根据XPS(XML文件规格)描述的目标数据并且由获取单元从接收的目标获取的图像绘制指令是放射渐变画笔元素的情况下,由指令判断单元判断图像绘制指令是用于绘制椭圆放射渐变的指令。通过提取单元从放射渐变画笔元素提取椭圆形状的中心坐标、长轴半径和短轴半径作为(指定椭圆形状的)椭圆形状参数,而提取椭圆放射渐变的中心坐标作为(指定要在椭圆形状中绘制的渐变图案的)渐变图案参数。利用此种构造,当由目标数据接收单元接收的XPS文档(目标数据)中存在放射渐变画笔元素时,能够生成由放射渐变画笔元素指定的椭圆放射渐变,而减少与渐变的绘制有关的负荷。
根据本发明的另一方面,提供了一种采用如上所述的图像生成装置的打印装置。
利用如上所构造的打印装置,能够在打印介质(例如,纸)上打印椭圆放射渐变,同时获得与上面所描述的图像生成装置相类似的效果。
根据本发明的其它方面,提供了一种图像生成方法,该图像生成方法包括:目标数据接收步骤,该目标数据接收步骤接收包括用于绘制椭圆放射渐变的图像绘制指令的目标数据;获取步骤,该获取步骤从接收到的目标数据获取图像绘制指令;提取步骤,该提取步骤从获取的图像绘制指令提取指定椭圆形状的椭圆形状参数、指定要在椭圆形状中绘制的渐变图案的渐变图案参数、以及指定其中绘制椭圆放射渐变的绘制区域的绘制区域参数;变换矩阵生成步骤,该变换矩阵生成步骤基于椭圆形状参数生成用于将椭圆形状变换为正圆形状的变换矩阵;逆矩阵计算步骤,该逆矩阵计算步骤计算变换矩阵的逆矩阵;第一变换步骤,该第一变换步骤使用变换矩阵变换渐变图案参数;第二变换步骤,该第二变换步骤使用变换矩阵变换包含由绘制区域参数指定的绘制区域的第一区域;绘制步骤,该绘制步骤基于通过第一变换步骤变换的变换后的渐变图案参数,在第二区域中绘制用于通过利用变换矩阵进行变换获得的正圆形状的放射渐变,其中第二区域包含通过第二变换步骤变换的变换后的第一区域;以及渐变生成步骤,该渐变生成步骤通过使用逆矩阵对第二区域进行逆变换在绘制区域中生成椭圆放射渐变,在第二区域中已经通过绘制步骤绘制了用于正圆形状的放射渐变。
优选地,图像生成单元进一步包括第一矩形区域设置步骤,该第一矩形区域设置步骤设置包含整个绘制区域的第一矩形区域。
优选地,绘制步骤被构造为以用于图像绘制的扫描线为单位绘制放射渐变,并且图像生成方法进一步包括第二矩形区域设置步骤,该第二矩形区域设置步骤将第二矩形区域设置为第二区域,其中,第二矩形区域包含通过第二变换步骤变换的变换后的整个第一区域并且具有与扫描线平行的边。
优选地,通过确定多个正圆执行用于正圆形状的放射渐变的绘制,要用统一的颜色绘制所述多个正圆中的每一个并且所述多个正圆的颜色彼此不同,图像生成方法进一步包括正圆选择步骤,该正圆选择步骤选择所述多个正圆中的一个或者多个正圆,所选择的一个或者多个正圆对于在第二区域中绘制放射渐是必要的,并且绘制步骤基于所选择的一个或者多个正圆在第二区域中绘制用于正圆形状的放射渐变。
优选地,目标数据接收步骤被构造为接收根据XML文件规格描述的目标数据,并且
图像生成方法进一步包括指令判断步骤,如果图像绘制指令包括放射渐变画笔元素,则该指令判断步骤判断图像绘制指令包括用于绘制椭圆放射渐变的指令,并且提取步骤从放射渐变画笔元素提取椭圆形状的中心坐标、长轴半径和短轴半径作为椭圆形状参数,而从放射渐变画笔元素提取椭圆放射渐变的中心坐标作为渐变图案参数。
利用如上所构造的图像生成方法,能够达到与上面所描述的图像生成装置相类似的效果。
结合附图从下面详细描述的考虑,本发明的其它目的、优点和特征将更明显。
附图说明
图1是示出根据本发明实施例的(包括打印机控制单元的)打印机的电气构造的框图。
图2是用于解释放射渐变画笔元素和路径(Path)元素的示例以及由所述元素指定的参数的示意图,对于放射渐变画笔元素,Center=”Cx,Cy”表示椭圆形状的中心坐标(Cx,Cy);GradientOrigin=”Gx,Gy”表示渐变的中心坐标(Gx,Gy);RadiusX=”Rx”表示X半径(X轴方向上的半径)Rx;RadiusY=”Ry”表示Y半径(Y轴方向上的半径)Ry;GradientStop Color=”#RsGsBs”Offset=”0”表示渐变的中心处的色值Rs,Gs,Bs;GradientStop Color=”#ReGeBe”Offset=”1”表示椭圆的外围处的色值Re,Ge,Be;对于路径元素的数据属性,M Mx,My表示移动至坐标(Mx,My);L Lx,Ly表示绘制线段到坐标(Lx,Ly);Z表示用线段闭合区域。
图3是示出根据由放射渐变画笔元素和路径元素指定的参数绘制的椭圆放射渐变的示例的示意图。
图4A-4E是用于解释实施例中采用的用于绘制椭圆放射渐变的原理的示意图。
图5是用于解释生成用于正圆放射渐变的红色放射渐变的方法的示意图。
图6是用于解释确定最小矩形R2的绘制所需要的正圆的方法的示意图,其中,最小矩形,右下角R2:(URx,URy),左上角:(LLx,LLy);正圆n,中心:(0,Cny),半径:rn;(1)将最小矩形R2的右下角的X坐标的绝对值与最小矩形R2的左上角的X坐标的绝对值比较并且将len_x设置为较大一个的平方,即|LLx|>|Urx|→len_x=LLx×LLx,否则→len_x=Urx×Urx;(2)根据(LLy-Cny)×(LLy-Cny)+len_x<(rn×rn)和(URy-Cny)×(URy-Cny)+len_x<(rn×rn)判断最小矩形R2的左上角和右下角是否处于正圆n的内部,如果满足两个不等式,则最小矩形R2包含在正圆n的内部。图7是用于解释确定最小矩形R2的绘制所需要的正圆的方法的示意图,其中,最小矩形,右下角R2:(URx,URy),左上角:(LLx,LLy);正圆n,中心:(0,Cny),半径:rn;(1)正圆n的最上部分位于最小矩形R2的最下部分的下面:(Cny-rn)>URy,(2)正圆n的最下部分位于最小矩形R2的最上部分的上面(Cny+rn)<LLy,
(3)正圆n的最左部分位于最小矩形R2的最右部分的右面-r>URx,
(4)正圆n的最右部分位于最小矩形R2的最左部分的左面r<LLx,如果满足条件(1)-(4)中的任何一个,则判断正圆n不包含最小矩形R2的任何部分。
图8是由打印机控制单元执行的打印处理的流程图。
图9是由打印机控制单元执行的椭圆放射渐变光栅化处理的流程图。
图10是由打印机控制单元执行的参数获取处理的流程图。
图11是由打印机控制单元执行的变换矩阵计算处理的流程图。
图12是由打印机控制单元执行的绘制最小矩形设置处理的流程图。
图13是由打印机控制单元执行的渐变生成处理的流程图。
具体实施方式
现在参考附图,将会详细地描述根据本发明的优选实施例。图1是示出根据本发明的实施例的(包括打印机控制单元10的)打印机1的电气构造的框图。
打印机1(装备有喷墨头19的喷墨打印机)是用于通过从喷墨头19的喷嘴朝向片材(例如,纸)排出墨滴来执行打印的外围装置。打印机控制单元10是用于控制打印机1的全部操作同时生成要由打印机1打印的图像数据的单元。
经由通信电缆或者无线通信将打印机1连接至PC(个人计算机)100。当接收到从PC 100传输的打印命令时,分析和打印命令一起从PC 100传输的数据(例如,根据XPS描述的电子文档(在下文中称为“XPS文档”)),并且由打印机控制单元10生成根据数据(例如,XPS文档)的图像数据,然后通过喷墨头19将根据生成的图像数据的图像打印在片材上。
在这样的情况下,如果在XPS文档中包括放射渐变画笔元素30(参见图2)作为指示椭圆放射渐变的绘制的图像绘制指令,则由打印机1的打印机控制单元10在由XPS文档指定的区域中生成由放射渐变画笔元素30指定的椭圆放射渐变。
打印机控制单元10被构造为能够生成椭圆放射渐变,同时减少与椭圆放射渐变的绘制有关的负荷。顺便说明,“椭圆放射渐变”意指椭圆形状中的渐变(即,具有渐变的图像),其中从渐变的中心到椭圆形状的外围,色值放射状地变化(有多个椭圆区域,在每个椭圆区域中,使用统一的色值来绘制)。
接下来,将会在下面详细地描述本实施例的打印机1的详细构造。如图1中所示,打印机1装备有操作面板14、LCD(液晶显示器)15、馈送电机(LF电机)16、馈送电机驱动电路17、喷墨头19、头驱动器20和接口21、以及打印机控制单元10。
在这些组件之中,经由I/O端口23将操作面板14、LCD 15、馈送电机驱动电路17、头驱动器20以及接口21连接至打印机控制单元10。将馈送电机16连接至馈送电机驱动电路17。将喷墨头19连接至头驱动器20。
打印机控制单元10包括通过总线22连接在一起的CPU(中央处理器)11、ROM(只读存储器)12和RAM(随机存取存储器)13。总线22连接至I/O端口23,经由总线22在打印机控制单元10和被连接至I/O端口23的每个组件之间通信信号。
CPU 11是下述处理器,该处理器用于根据存储在ROM 12和RAM13中的程序和定值(数据)、经由接口21从PC 100接收到的各种信号等等控制打印机1并且生成要由打印机1打印的图像数据。
ROM 12是存储要由CPU 11执行的控制程序12a、要由控制程序12a参考的定值等等的不可重写的非易失性存储器。在控制程序12a中包括了执行图8-13中所示的处理所需要的程序。
在这些程序之中,当经由接口21从PC 100接收到打印命令时,由CPU 11运行用于打印处理(图8)的程序,由此分析和打印命令(例如,XPS文档)一起从PC 100接收到的数据并且生成根据数据的图像(图像数据)。
在随同打印命令从PC 100接收XPS文档并且接收到的XPS文档包括放射渐变画笔元素30(请参见图2)作为用于绘制椭圆放射渐变的指令的情况下,由CPU 11运行用于椭圆放射渐变光栅化处理(图9)的程序作为用于打印处理(图8)的程序的子程序。
通过运行用于椭圆放射渐变光栅化处理的程序,CPU 11连续地执行用于参数获取处理(图10)、变换矩阵计算处理(图11)、绘制最小矩形设置处理(图12)以及渐变生成处理(图13)的程序。
通过执行这些程序,CPU 11生成用于将由放射渐变画笔元素30指定的椭圆形状仿射变换成正圆形状(其中心位于原点)的变换矩阵,然后通过使用生成的变换矩阵仿射变换最小矩形R(请参见图4A),该最小矩形R包括由放射渐变画笔元素30的上级(upper level)元素(例如,路径元素40)指定的渐变绘制区域(请参见图2和3)。接下来,CPU 11绘制用于最小矩形R2的正圆放射渐变(通过对椭圆形状的仿射变换获得的正圆形状中的放射渐变)(请参见图4C),该最小矩形R2被定义为包含仿射变换之后的最小矩形R的全部并且具有与扫描线平行的边的最小矩形区域。附带说明,“正圆放射渐变”意指在下述正圆形状中的渐变(即,具有渐变的图像),在所述正圆形状中色值从渐变的中心到正圆形状的外围放射状地变化(有多个正圆区域,在所述多个正圆区域中的每一个中用统一的色值来绘制)。
其后,CPU 11计算生成的变换矩阵的逆矩阵并且使用该逆矩阵对最小矩形R2(其中已经绘制了渐变)进行逆仿射变换,由此在由上级元素(例如,路径元素40)指定的渐变绘制区域中生成由放射渐变画笔元素30指定的(部分)椭圆放射渐变。稍后将会参考图4A-4E详细地解释用于在本实施例中采用的椭圆放射渐变的绘制的原理。
RAM 13是用于暂时地存储各种数据的可重写的易失性存储器。在RAM13中保留诸如XPS数据存储器13a、渐变参数存储器13b、绘制区域存储器13c、变换矩阵存储器13d、最小矩形存储器13e以及页存储器13f的存储区域。
XPS数据存储器13a是用于暂时地存储和打印命令一起从PC 100接收到的XPS文档的存储器(存储区域)。在从PC 100接收到XPS文档之后,借助于DMA(直接存储器存取),接口21将接收到的XPS文档传输至RAM 13的XPS数据存储器13a,由此从PC 100接收到的XPS文档被存储在XPS数据存储器13a中。
当执行打印处理(请参见图8,稍后解释)时,由CPU 11读出存储在XPS数据存储器13a中的XPS文档并且分析XPS文档的内容。CPU 11通过根据XPS文档的内容执行图像绘制处理来生成要由打印机1打印的图像数据,并且将生成的图像数据存储在页存储器13f中。
渐变参数存储器13b是用于存储包括在放射渐变画笔元素30(请参见图2)中的椭圆形状参数(其指定椭圆形状)和渐变图案参数(其指定要在椭圆形状中绘制的渐变图案)的存储器,该放射渐变画笔元素30被包含在XPS文档中作为指示椭圆放射渐变的绘制的图像绘制指令。
当放射渐变画笔元素30被包括在存储在XPS数据存储器13a中的XPS文档中时,在椭圆放射渐变光栅化处理(图9)中执行的参数获取处理(图10)中,CPU 11从放射渐变画笔元素30中提取椭圆形状参数(其指定椭圆形状)和渐变图案参数(其指定要在椭圆形状中绘制的渐变图案),并且将提取的参数存储在渐变参数存储器13b中。稍后将会参考图2和3详细地解释包括在XPS文档中的放射渐变画笔元素30和包括在该元素中的参数。
在存储在渐变参数存储器13b中的参数中,在椭圆放射渐变光栅化处理(图9)中由CPU 11执行的变换矩阵计算处理(图11)中,使用(指定椭圆形状的)椭圆形状参数来生成用于将椭圆形状仿射变换成正圆形状(其中心位于原点)的变换矩阵。
在存储在渐变参数存储器13b中的参数中,在椭圆放射渐变光栅化处理(图9)中由CPU 11执行的渐变生成处理(图13)中通过使用上述变换矩阵对包括在渐变图案参数(其指定要在椭圆形状中绘制的渐变图案)中的渐变中心坐标(请参见图3)进行仿射变换。
基于存储在渐变参数存储器13b中的渐变图案参数(包括进行仿射变换之后的渐变中心坐标),为图4C中所示的最小矩形R2绘制正圆放射渐变。
绘制区域存储器13c是用于存储包括在XPS文档中的放射渐变画笔元素30的上级元素(例如,路径元素40)中的指定渐变绘制区域(其中绘制了椭圆放射渐变)的参数的存储器。稍后将会参考图2和3详细地解释被包括在XPS文档中的路径元素40。
在椭圆放射渐变光栅化处理(图9)中执行的参数获取处理(图10)中,CPU 11从上级元素40(例如,路径元素40)中提取指定渐变绘制区域(其中绘制了椭圆放射渐变)的参数,并且将由该参数确定的渐变绘制区域参数(例如,向量信息)存储在绘制区域存储器13c中。
在椭圆放射渐变光栅化处理(图9)中执行的绘制最小矩形设置处理(图12)中,CPU 11参考绘制区域存储器13c并且设置最小矩形R(请参见图4A),该最小矩形R被定义为包含其参数已经被从上级元素(例如,路径元素40)中提取的整个渐变绘制区域的最小矩形区域。
在椭圆放射渐变光栅化处理(图9)中执行的渐变生成处理(图13)中,CPU 11参考绘制存储器13c并且基于存储在绘制区域存储器13c中的参数从通过对最小矩形R2(其中已经绘制了正圆放射渐变)进行逆仿射变换获得的区域切出渐变绘制区域。
在XPS文档中,还能够由除了路径元素40之外的元素(字体(Glyphs)元素、画布(Canvas)元素等等)指定渐变绘制区域。在本实施例中,当在XPS文档中存在此种指定渐变绘制区域的元素时,CPU11基于该元素确定渐变绘制区域并且将指定渐变绘制区域的参数存储在绘制区域存储器13c中。
变换矩阵存储器13d是用于存储用于从(由XPS文档中的放射渐变画笔元素30指定的)椭圆形状到正圆形状的仿射变换的变换矩阵的存储器。在稍后将会解释的椭圆放射渐变光栅化处理(图9)中执行的变换矩阵计算处理(图11)中,CPU 11基于存储在渐变参数存储器13b中的椭圆形状参数生成用于从椭圆形状到正圆形状(其中心位于原点)的仿射变换的变换矩阵,然后将生成的变换矩阵存储在变换矩阵存储器13d中。
存储在变换矩阵存储器13d中的变换矩阵用于包括在存储在渐变参数存储器13b中的渐变图案参数中的渐变中心坐标(请参见图2和图3)的仿射变换。
在这样的情况下,如果在仿射变换之后的渐变中心坐标不在Y轴的非负部分上,则CPU 11通过将旋转元素添加至原始的变换矩阵来生成新的变换矩阵使得仿射变换之后的渐变中心坐标将会被放置在Y轴的非负部分上。通过覆写原始的变换矩阵将最新生成的变换矩阵存储在变换矩阵存储器13d中。稍后将会参考图4A-4E解释旋转元素(其被添加至原始的变换矩阵)。
通过使用最终存储在变换矩阵存储器13d中的变换矩阵(即,已经添加了旋转元素的变换矩阵)再次对存储在渐变参数存储器13b中的渐变中心坐标进行仿射变换。使用最终存储在变换矩阵存储器13d中的变换矩阵也能够对前述的最小矩形R进行仿射变换。
为作为包含通过对最小矩形R进行仿射变换获得的区域的最小矩形区域的最小矩形R2(请参见图4C),CPU 11绘制正圆放射渐变(通过仿射变换获得的正圆形状中的放射渐变)。
对于最终存储在变换矩阵存储器13d中的变换矩阵(即,已经添加了旋转元素的变换矩阵),由CPU 11计算逆矩阵。CPU 11使用计算的逆矩阵对最小矩形R2(其中已经绘制了正圆放射渐变)进行逆放射变换,由此能够获得由放射渐变画笔元素30指定的,为由上级元素指定的绘制区域生成的(部分)椭圆放射渐变。
最小矩形存储器13e是用于存储最小矩形R2(请参见图4C)的坐标的存储器,在最小矩形R2中绘制了正圆放射渐变(在通过椭圆形状的仿射变换而获得的正圆形状中的放射渐变,所述仿射变换是通过存储在变换矩阵存储器13d中的变换矩阵进行的)。
在椭圆放射渐变光栅化处理(图9)中执行的绘制最小矩形设置处理(图12)中,CPU 11基于存储在绘制区域存储器13c中的指定绘制区域的参数设置包含整个绘制区域(其中绘制了椭圆放射渐变)的最小矩形R(请参见图4A),对最小矩形R执行仿射变换,设置包含通过最小矩形R的仿射变换获得的整个区域的最小矩形R2,并且将最小矩形R2的坐标存储在最小矩形存储器13e中。
在椭圆放射渐变光栅化处理(图9)中执行的渐变生成处理(图13)中,CPU 11根据存储在最小矩形存储器13e中的最小矩形R2的坐标确定最小矩形R2的绘制所需要的正圆(其在正圆放射渐变中形成的所有的正圆(应使用统一的色值绘制其中的每一个)之中),并且基于存储在最小矩形存储器13e中的最小矩形R2的坐标绘制用于最小矩形R2的正圆放射渐变。稍后将会参考图6和7解释确定最小矩形R2的绘制所需要的正圆的方法。
页存储器13f是用于以位图格式存储要由打印机1打印的(由打印机控制单元10生成的)图像数据的存储器。在页存储器13f上光栅化通过椭圆放射渐变光栅化处理(图9)生成的椭圆放射渐变和根据数据(例如,XPS文档)生成的其它图像数据。
当根据和打印命令一起从PC 100接收到的数据通过打印处理(图8)在页存储器13f上已经将要由打印机1打印的图像数据光栅化时,CPU 11驱动馈送电极驱动电路17和头驱动器20,并从而将与存储在(光栅化在)页存储器13f中的图像数据相对应的图像打印在片材上(例如,纸)。
操作面板14是包括用于让用户进行打印机设置、输入指令等等的输入按钮的用户接口。LCD 15是用于取决于操作面板14上的用户操作而显示各种信息(菜单、打印机1的操作状态等等)的显示装置。
馈送电机(LF电机)16是用于在馈送方向的下游或者上游馈送(被放置在打印机1中/上的规定位置的)片材的步进电机。由馈送电机驱动电路17根据来自于CPU 11的指令执行馈送电机16的驱动控制。通过驱动馈送电机16,片材被馈送到喷墨头19的下表面(面对喷嘴的尖头)。
作为具有多个喷嘴(未示出)和致动器(未示出)的打印头的喷墨头19,装备有与四种颜色的墨水(青色、品红色、黄色、黑色)相对应的四个喷墨头单元。头驱动器20是用于驱动喷墨头19的致动器的驱动电路。
CPU 11基于存储在页存储器13f中的图像数据生成与四种颜色的墨水(青色、品红色、黄色、黑色)相对应的多值数据并且经由门阵列(未示出)将生成的多值数据发送至头驱动器20。头驱动器20生成与从CPU 11供给的多值数据相对应的驱动脉冲并且将驱动脉冲施加到与喷嘴相对应的致动器,由此选择性地从喷嘴排出墨滴并且将与存储在页存储器13f中的图像数据相对应的图像打印在片材上。
接口21是用于控制打印机1和PC 100之间的数据通信的单元。打印机1经由接口21从PC 100接收打印命令和指定要被打印的图像的数据(例如,XPS文档)。
在从PC 100接收了打印命令之后,接口21将(用于报告打印命令的接收的)中断信号发送至CPU 11。在从PC 100接收了XPS文档之后,接口21借助于DMA(直接存储器存取)将接收到的XPS文档传输至RAM 13中的XPS数据存储器13a。
在下文中,将会参考图2和图3详细地解释放射渐变画笔元素(其被包括在XPS文档中)和路径元素40(其作为放射渐变画笔元素30的上级元素)。图2是用于解释放射渐变画笔元素30和路径元素40的示例以及由所述元素指定的参数的示意图。图3是示出根据由放射渐变画笔元素30和路径元素40指定的参数绘制的椭圆放射渐变的示例的示意图。
首先,如图2中所示,放射渐变画笔元素30由多个属性和子元素组成。在属性和子元素当中,“中心(Center)”属性31、“半径X(RadiusX)”属性33和“半径Y(RadiusY)”属性34给出椭圆形状参数(其指定椭圆形状)。同时,“渐变原点(GradientOrigin)”属性32和放射渐变画笔渐变停止(RadialGradientBrush.GradientStop)元素35给出(指定要在椭圆形状中绘制的渐变图案的)渐变图案参数。
“中心”属性31指定图3中所示的椭圆形状的中心的坐标(Cx,Cy)。这里,“椭圆形状的中心”意指椭圆形状的长轴和短轴彼此相交的点。
“渐变原点”属性32指定图3中所示的渐变的中心的坐标(即,渐变中心坐标)(Gx,Gy)。这里,“渐变的中心”意指放射渐变的颜色变化开始的点(即,渐变的起点)。
放射渐变表现为使得其颜色从其中心到由放射渐变画笔元素30指定的椭圆形状的外围上的点(作为渐变中颜色变化的终点(渐变的终点))逐渐地变化。
附带地,按照由在由XPS文档指定的打印区域的左上角处限定的原点处以直角彼此相交的两个坐标轴(X轴,Y轴)表示的正交坐标系描述由“中心”属性31和“渐变原点”属性32给出的参数(请参见图3)。
在该正交坐标系中,(正)X轴在打印区域的水平方向(从左到右)延伸,而(正)Y轴在打印区域的竖直方向(从上到下)延伸。
在图2中所示的放射渐变画笔元素30的示例中,由“中心”属性31将椭圆形状的中心坐标指定为(150,150),而由“渐变原点”属性32将渐变的中心坐标指定为(200,170)。
同时,“半径X”属性33指定X轴方向上的椭圆形状的半径Rx(在下文中被称为“X半径”),并且“半径Y”属性34指定Y轴方向上的椭圆形状的半径Ry(在下文中被称为“Y半径”)。
附带地,在X轴方向和Y轴方向上设置(由“半径X”属性33和“半径Y”属性34的参数指定的)椭圆形状的长/短轴。
因此,Rx或者Ry中较小的一个表示椭圆形状的短轴半径,而Rx或者Ry中的较大的一个表示椭圆形状的长轴半径。如图3中所示,X轴方向和Y轴方向上的椭圆形状的长度分别为2Rx和2Ry。
在图2中所示的放射渐变画笔元素30的示例中,由“半径X”属性33将X半径指定为“140”,并且由“半径Y”属性34将Y半径指定为“100”。
同时,放射渐变画笔渐变停止元素35给出指定渐变的色值的参数。元素35包括两个子元素:渐变停止(GradientStop)元素35a和35b。每个渐变停止元素(35a,35b)包括“颜色(Color)”属性和“偏移量(Offet)”属性。
“颜色”属性指定在由“偏移量”属性指定的点处的红色、绿色以及蓝色的色值。在“颜色”属性中,色值被描述为六位十六进制数字,其中,最高有效位的两位指定红色值,接下来的两位指定绿色值,并且最低有效位的两位指定蓝色值。
“偏移量”属性指定具有由“颜色”属性指定的色值的点。例如,当“偏移量”属性的值为“0”时,意味着由“颜色”属性指定的色值是渐变的中心(起点)处的色值。当“偏移量”属性的值为“1”时,意味着由“颜色”属性指定的色值是由放射渐变画笔元素30指定的椭圆形状的外围上的点处(即,在渐变的终点处)的色值。
因此,由渐变停止元素35a指定渐变的中心(起点)处红色、绿色以及蓝色的色值(Rs,Gs,Bs)(请参见图3),而由渐变停止元素35b指定椭圆形状的外围上的点处(即,在渐变的终点处)的红色、绿色以及蓝色的色值(Re,Ge,Be)(请参见图3)。
在图2中所示的放射渐变画笔元素30的示例中,由渐变停止元素35a将渐变的中心(起点)处的红/绿/蓝色值(Rs,Gs,Bs)指定为(FF)16,(FF)16和(00)16。
同时,由渐变停止元素35b将椭圆形状的外围上的点处(即,渐变的终点处)的红/绿/蓝色值(Re,Ge,Be)指定为(00)16,(00)16和(FF)16。附带地,值“(FF)16”表示十六进制表示法中的“FF”(十进制表示法中的“255”),并且值“(00)16”表示十六进制表示法中的“00”(十进制表示法中的“0”)。
利用包括这样的属性和子元素的放射渐变画笔元素30,根据由“中心”属性31给出的椭圆形状的中心坐标(Cx,Cy)确定(由“中心”属性31给出的椭圆形状的中心坐标(Cx,Cy)指定)打印区域中椭圆形状的绘制位置,根据由“半径X”属性33和“半径Y”属性34给出的椭圆形状的X半径和Y半径确定(由“半径X”属性33和“半径Y”属性34给出的椭圆形状的X半径和Y半径指定)椭圆形状的外围的形状和尺寸,如图3中所示。根据上述信息,确定打印区域中椭圆形状的外围上的点的位置。
同时,通过由“渐变原点”属性32给出的渐变中心坐标(Gx,Gy)来确定(指定)打印区域中渐变的中心的位置。
取决于渐变的中心和椭圆形状的外围上的各个点之间的距离,通过使用由渐变停止元素35a指定的渐变的中心(起点)处的红/绿/蓝色值(Rs,Gs,Bs)和由渐变停止元素35b指定的椭圆形状的外围上的点处(即,渐变的终点处)的红/绿/蓝色值(Re,Ge,Be),通过插值确定椭圆形状中的渐变图案。
接下来,在下面解释路径元素40。路径元素40指定绘制区域,在绘制区域中绘制与包括在路径填充(Path.Fill)元素41中的每个元素(例如,放射渐变画笔元素30)相对应的每个图形。换言之,在由路径元素40指定的绘制区域内部绘制与被包括在路径填充元素41中的每个元素相对应的每个图形。
如图2中所示,路径元素40包括“数据(Data)”属性,该“数据”属性给出关于根据由前述的X轴和Y轴表示的正交坐标系的绘制区域的信息。
具体地,“数据”属性包括命令(“M Mx,My”,“L Lx,Ly”,“Z”,等等),由命令指定的线段限定绘制区域。例如,命令“M Mx,My”用于将被称为“终点”的点移动至坐标(Mx,My),由此确定绘制区域的起点。
命令“L Lx,Ly”用于将终点移动至坐标(Lx,Ly),以便于绘制连接移动之前和之后的终点的线段,由此确定绘制区域的顶点。
命令“Z”用于将终点移动至绘制区域的起点(Mx,My),以便于绘制连接移动之前和之后的终点的线段并且闭合由线段围绕的区域(绘制区域),由此确定整个绘制区域的形状。
在图2中所示的路径元素40的示例中,由“数据”属性的命令“MMx,My”将绘制区域的起点的坐标指定为(100,140),并且由“数据”属性的两个命令“L Lx,Ly”将绘制区域的两个顶点的坐标指定为(140,160)和(120,80),由此通过两个线段将由坐标(100,140)表示的点连接至由坐标(140,160)表示的点和由坐标(120,80)表示的点。
此外,通过“数据”属性的命令“Z”,通过线段将由坐标“120,80)表示的点连接至由坐标(100,140)表示的点。因此,在该示例中,具有在(100,140)、(140,160)以及(120,80)处的三个顶点的三角形区域被指定为绘制区域(其中绘制与被包括在路径填充元素41中的每个元素相对应的每个图形)。
由于在本示例中在路径填充元素41中包括放射渐变画笔元素30,所以由路径元素40指定的绘制区域被确定为渐变绘制区域,其中应绘制由放射渐变画笔元素30指定的椭圆放射渐变,如图3中所示。
如上,由路径元素40指定应为其绘制椭圆放射渐变(根据被包括在路径填充元素41中的放射渐变画笔元素30绘制)的渐变绘制区域。表示由路径元素40指定的渐变绘制区域的参数(例如,向量信息)被存储在绘制区域存储器13c中。
在下面,将会参考图4A-4E解释本实施例中采用的用于椭圆放射渐变的绘制的原理。图4A-4E是用于解释用于椭圆放射渐变的绘制的原理的示意图。在下述解释中,下面所示的3×3矩阵将被表示为(a,b,c,d,e,f)。
( a , b , c , d , e , f ) = a , b , 0 c , d , 0 e , f , 1
在本实施例中,当和打印命令一起从PC 100接收到的数据是XPS文档并且XPS文档包括放射渐变画笔元素30时,打印机控制单元10(CPU 11)首先从放射渐变画笔元素30提取图4A中所示的参数,即,指定椭圆形状的椭圆形状参数(即,椭圆形状的中心坐标(Cx,Cy)、X半径Rx和Y半径Ry)以及指定要在椭圆形状中绘制的渐变图案的渐变图案参数(即,渐变的中心坐标(Gx,Gy),渐变的中心(起点)处的色值(Rs,Gs,Bs)和椭圆形状的外围(渐变的终点)处的色值(Re,Ge,Be))。
在这样的情况下,CPU 11从放射渐变画笔元素30的上级元素(例如,路径元素40)进一步提取指定渐变绘制区域(应为其绘制由放射渐变画笔元素30指定的椭圆放射渐变)的参数(图4A中的S1)。
附带地,图4A是示出根据由放射渐变画笔元素30指定的参数绘制的椭圆放射渐变的示例和路径元素40指定的渐变绘制区域的示例的示意图(几乎与图3相同)。
接下来,根据下面的等式(1),通过使用提取的椭圆形状参数,CPU 11生成用于将图4A中所示的椭圆形状仿射变换到图4B中所示的正圆形状(其半径是Rx且中心坐标是(0,0))的变换矩阵A(图4B中的S2):
A=(1,0,0,Rx/Ry,-Cx,-(Rx/Ry)·Cy)···(1)
附带地,虽然在本实施例中解释了将图4A中所示的椭圆形状仿射变换成图4B中所示的正圆形状(具有半径Rx和中心坐标(0,0))的情况,但是图4A中所示的椭圆形状也可以被仿射变换成具有半径Ry和中心坐标(0,0)的正圆形状,或者具有半径R(任意值)和中心坐标(0,0)的正圆形状。
在前一种情况下,根据下面的等式(2)生成变换矩阵A。在后一种情况下,根据下面的等式(3)生成变换矩阵A。
A=(Ry/Rx,0,0,1,-(Ry/Rx)·Cx,-Cy)···(2)
A=(R/Rx,0,0,R/Ry,-(R/Rx)·Cx,-(R/Ry)·Cy)···(3)
接下来,CPU 11使用由等式(1)生成的变换矩阵A对图4A中所示的渐变中心坐标(Gx,Gy)进行仿射变换(图4B中的S3)。然后,CPU 11判断仿射变换之后的渐变的中心(请参见图4B)是否位于Y轴的非负部分上。如果仿射变换之后的渐变中心不在Y轴的非负部分上,则CPU 11计算正Y轴与连接原点(0,0)和渐变中心的线段之间的角度θ(请参见图4B)(图4B中的S4)。
接下来,CPU 11根据下面的等式(4)生成用于围绕原点旋转角度θ(仿射变换)的变换矩阵B1,然后如下面等式(5)所示,通过将变换矩阵A乘以变换矩阵B1生成变换矩阵B(即,已经添加了旋转元素的变换矩阵A)(图4C中的S5)。
B1=(cosθ,sinθ,-sinθ,cosθ,0,0)···(4)
B=A·B1···(5)
另一方面,如果使用由等式(1)生成的变换矩阵A进行的仿射变换之后的渐变中心位于Y轴的非负部分上,则等式(1)的变换矩阵A直接被用作变换矩阵B。
接下来,CPU 11设置包含整个渐变绘制区域的最小矩形R(图4A中的S6)。由于以下原因在该步骤中设置最小矩形R:当在后面的步骤中不得不对其中应绘制渐变的某区域进行仿射变换时,在渐变绘制区域具有复杂的形状的情况下对(由路径元素40等等指定的)渐变绘制区域的直接仿射变换要求复杂的计算。
为此,在本实施例中通过简化用于仿射变换的计算、通过设置包含整个渐变绘制区域的最小矩形R并且对最小矩形R执行仿射变换,来减少与渐变的绘制有关的负荷。
附带地,虽然为了处理的简化在本实施例中在不考虑渐变绘制区域的形状为(由路径元素40等等指定的)渐变绘制区域设置最小矩形R,但是也能够先判断渐变绘制区域的形状的复杂性并且仅当判断渐变绘制区域具有复杂的形状时设置最小矩形R。当判断渐变绘制区域具有简单的形状时,可以直接对渐变绘制区域执行仿射变换。
可以基于渐变绘制区域的顶点的数量判断渐变绘制区域的形状的复杂性。例如,当顶点的数量是规定的数量(例如,5)或者更多时,可以判断渐变绘制区域具有复杂的形状。当渐变绘制区域的外围包括曲线部分时也可以判断渐变绘制区域的形状是复杂的。
接下来,CPU 11使用前述的变换矩阵B对图4A中所示的渐变中心坐标(Gx,Gy)进行仿射变换(图4A中的S7),由此图4A中所示的椭圆形状被变换成具有半径Rx和中心坐标(0,0)的正圆形状并且渐变中心被放置在Y轴的非负部分,如图4C中所示。
CPU 11还使用变换矩阵B对最小矩形R进行仿射变换(图4A中的S7),由此能够在(通过对椭圆形状的仿射变换获得的)正圆形状中确定与最小矩形R相对应的区域,如图4C中所示。
接下来,CPU 11将最小矩形R2设置为最小矩形区域,所述最小矩形区域包含与正圆形状中的最小矩形R相对应的整个区域(即,通过变换矩阵B进行仿射变换之后的整个最小矩形R)并具有与扫描线平行的边(图4C中的S8)。
接下来,CPU 11执行光栅化处理用于为最小矩形R2绘制图4C中所示的正圆放射渐变(图4C中的S9)。具体地,CPU 11在最小矩形R2中生成图4D中所示的(部分)放射渐变(其中红/绿/蓝色值从渐变的起点(即,仿射变换之后被放置在Y轴的非负部分的渐变中心)处的值(Rs、Ge,Bs)到渐变的终点(即,正圆形状的外围)处的值(Re,Ge,Be)逐渐地变化)。
以位图的格式将生成的正圆放射渐变(其在最小矩形R2中)存储在RAM 13中,由此完成了光栅化处理。稍后将会参考图5详细地解释生成正圆放射渐变的方法。
由于最小矩形R2已经被设置为具有与扫描线平行的边的矩形区域,所以在该光栅化处理中能够使每条扫描线上的最小矩形R2的范围对于与最小矩形R2相交的所有扫描线来说相等,由此能够更加容易地计算在每根扫描线上用于绘制的开始位置和结束位置,并且能够进一步减少与渐变的绘制有关的负荷。
此外,当在本实施例中为最小矩形R2绘制正圆放射渐变时,确定(在正圆放射渐变中形成的所有的正圆(应用统一的色值绘制正圆中的每一个)之中)最小矩形R2的绘制所需要的正圆,并且基于已确定的正圆为最小矩形R2绘制正圆放射渐变。
例如,在图4D中所示的示例中,将来自于正圆形状的外围的第二至第四正圆(除了最外面的正圆(外围)或者最里面的正圆之外的正圆)指定(确定)为最小矩形R2的绘制所需要的正圆,并且基于来自于正圆形状的外围的第二至第四正圆执行用于最小矩形R2的正圆放射渐变的绘制。
利用该方法,在正圆放射渐变中绘制的正圆(其中的每一个对应于色值)中,仅为最小矩形R2的绘制所需要的正圆执行绘制处理(而没有指定不需要的正圆或者为不需要的正圆执行绘制处理),由此能够进一步减少与渐变的绘制有关的负荷。
接下来,CPU 11对存储在RAM 13中的最小矩形R2(其中已经绘制了如图4D中所示的正圆放射渐变)执行逆仿射变换(图4D中的S10)。使用作为变换矩阵B的逆的变换矩阵(用于图4A中所示的椭圆形状到图4C中所示的正圆形状的仿射变换)来执行逆仿射变换。
由于仿射变换之后最小矩形R2是包含整个最小矩形R(最初包含整个渐变绘制区域)的矩形区域,所以通过对最小矩形R2进行逆仿射变换获得的区域包含由路径元素40等等指定的整个渐变绘制区域。
因此,通过从逆仿射变换后的最小矩形R2中切出渐变绘制区域,能够获得渐变绘制区域,其中已经生成了由放射渐变画笔元素30指定的(部分)椭圆放射渐变,如图4E中所示。
以位图的格式将如上生成的椭圆放射渐变存储在页存储器13f中,由此完成了渐变绘制区域(其中已经生成了椭圆放射渐变)的光栅化。
接下来,将会参考图5解释生成正圆放射渐变的方法。图5是用于解释生成用于正圆放射渐变的红色放射渐变的方法的示意图。
为了生成正圆放射渐变,独立地生成红色、绿色以及蓝色的放射渐变。生成绿色放射渐变和蓝色放射渐变的方法与生成红色放射渐变的方法(在这里解释)相同,因此为了简明扼要,省略了生成绿色放射渐变和蓝色放射渐变的方法的解释和说明。
通过计算每个正圆(具有统一的色值)的中心坐标和半径并且从最小矩形R2的绘制所需要的正圆的最外面的一个连续地用统一的色值绘制(由中心坐标和半径指定的)每个正圆的内部,在最小矩形R2(应为其绘制渐变)中生成正圆放射渐变(红色、绿色或者蓝色的)。
如下地计算每个正圆的中心坐标和半径以及用于每个正圆的绘制的色值:首先,将正圆形状的外围(正圆0)的中心坐标C0和半径r0分别设置为(0,0)和Rx。接下来,将用于(由中心坐标C0和半径r0指定的)正圆0上的点和正圆0的内部的绘制的(红)色值R0设置为正圆形状的外围(渐变的终点)处的色值Re。用色值R0绘制正圆0上的点和正圆0的内部。
接下来,使用下面的等式(6)-(9)计算内正圆1(就在正圆0的内部并且为其使用了不同于正圆0的色值R0的色值R1)的色值R1、半径r1和中心坐标C1(C1x,C1y):
C1x=0···(6)
C1y=G′y·k/(Re-Rs)···(7)
r1=r0-r0·k/(Re-Rs)···(8)
R1=Re-k···(9)
其中,“G′y”表示通过变换矩阵B进行的仿射变换之后的放射渐变中心的Y坐标,并且“k”表示在两个相邻的正圆(两个相邻的环形区域)之间的色值中的变化(差)。
在本实施例中,当放射渐变的中心处的色值Rs大于正圆形状的外围处的色值Re时色值变化k被设为负值(例如,-1),或者当放射渐变的中心处的色值Rs小于正圆形状的外围处的色值Re时色值变化k被设为正值(例如,+1)。附带地,考虑到人类感觉、颜色空间的特性、打印机1的颜色重现性能等等,可以适当地设置色值变化k的绝对值使得渐变中的颜色变化看起来平滑。
使用通过等式(9)计算的色值R1绘制(由通过等式(6)-(8)计算的中心坐标C1(C1x,C1y)和半径r1指定的)正圆1的内部。
此外,从外部开始连续地计算(在正圆2、3、......、n、......当中)最小矩形R2的绘制所需要的每个正圆的中心坐标、半径和色值,同时使用计算的色值绘制(由计算的中心坐标和半径指定的)每个正圆的内部。重复该处理直到为最小矩形R2的绘制所需要的所有正圆完成了中心坐标、半径和色值的计算以及绘制(用计算的色值)。附带地,通过使用下面的等式(10)-(13)计算每个正圆n(n也能够为0或者1)的中心坐标Cn(Cnx,Cny)、半径rn和色值Rn:
Cnx=0···(10)
Cny=G′y·n·k/(Re-Rs)···(11)
rn=r0-r0·n·k/(Re-Rs)···(12)
Rn=Re-n·k···(13)
通过上述方法生成正圆放射渐变(正圆形状中的放射渐变)。在此种方法中,通过使用变换矩阵B的仿射变换使放射渐变的中心被放置在Y轴的非负部分上,因此在具有统一的色值的每个正圆形状的中心坐标的计算中X坐标能够被固定在“0”。
换言之,要用统一的色值绘制的每个正圆的中心坐标能够作为一维函数(仅使用Y坐标)来计算,由此能够显著地减少正圆形状中放射渐变的绘制所需要的计算量。
此外,通过由通过变换矩阵B进行的仿射变换使渐变中心被放置在Y轴的非负部分,仿射变换之后的放射渐变的中心能够被固定在正圆形状的中心或者正圆形状的中心的正侧上的位置。
接下来,将会参考图6和7解释确定最小矩形R2的绘制所需要的正圆的方法。首先,将会参考图6解释确定最小矩形R2的绘制所需要的正圆的最外面的一个的方法。
为了确定最外面的需要的正圆,从正圆放射渐变的中心朝向正圆形状的外围连续地进行下述判断,即(要用统一的色值绘制的)每个正圆是否满足图6中所示的条件而包含整个最小矩形R2。将判断为包含整个最小矩形R2的第一正圆确定为绘制最小矩形R2所需要的最外面的正圆。
下面将会解释关于每个正圆n是否包含整个最小矩形R2的判断。顺便说明,将基于下述假定给出下面的解释:假定最小矩形R2的右下角的坐标(即,在最小矩形R2中X坐标和Y坐标都是最大的点)是(URx,URy),最小矩形R2的左上角的坐标(即,在最小矩形R2中X坐标和Y坐标都是最小的点)是(LLx,LLy),正圆n的中心Cn的坐标是(0,Cny),并且正圆n的半径是rn。
首先,相互比较URx(最小矩形R2的右下角的X坐标)和LLx(最小矩形R2的左上角的X坐标)的绝对值,两个中的较大一个被平方并且替代变量len_x。换言之,如果LLx(左上角的X坐标)的绝对值大于URx(右下角的X坐标)的绝对值则变量len_x被设置为(LLx)2,否则变量len_x被设置为(URx)2
接下来,基于下面的不等式(14)和(15)判断最小矩形R2的两个点(左上角、右下角)是否包含在正圆n中:
(LLy-Cny)2+len_x<(rn)2…(14)
(URy-Cny)2+len_x<(rn)2…(15)
如果满足两个不等式(14)和(15),则能够判断在正圆n中包含最小矩形R2的两个点(左上角、右下角)。
如果在正圆n中包含所述两个点(左上角、右下角),则能够判断正圆n包含整个最小矩形R2。因此,在本实施例中,当满足两个不等式(14)和(15)时,正圆n被判断为包含整个最小矩形R2。
接下来,将会参考图7解释用于(当从通过图6的方法确定的最外面的需要的正圆连续地执行绘制处理时)判断是否已经为绘制最小矩形R2所需要的所有正圆执行了绘制处理的方法。
当从最外面的需要的正圆开始连续地为每个正圆执行绘制处理时通过判断正圆是否包含最小矩形R2的至少一部分来进行该判断。当判断正圆不包含最小矩形R2的任何部分时,判断已经为绘制最小矩形R2所需要的所有正圆执行了绘制处理。
通过判断是否满足图7中所示的条件(1)-(4)中的任何一个,来判断每个正圆n是否包含最小矩形R2的至少一部分。
第一条件(1)是正圆n的最上部分(即,正圆n中Y坐标最小的点)位于最小矩形R2的最下部分(即,最小矩形R2中Y坐标最大的点)下面。使用下面的不等式(16)判断是否满足条件(1)。
(Cny-rn)>URy···(16)
当满足不等式(16)时,判断正圆n的最上部分位于最小矩形R2的最下部分之下,即,满足第一条件(1)。
第二条件(2)是正圆n的最下部分(即,正圆n中Y坐标最大的点)位于最小矩形R2的最上部分(即,最小矩形R2中Y坐标最小的点)之上。使用下面的不等式(17)判断是否满足条件(2):
(Cny+rn)<LLy···(17)
当满足不等式(17)时,判断正圆n的最下部分位于最小矩形R2的最上部分之上,即,满足第二条件(2)。
第三条件(3)是正圆n的最左部分(即,正圆n中X坐标最小的点)位于最小矩形R2的最右部分(即,最小矩形R2中X坐标最大的点)的右面。使用下面的不等式(18)判断是否满足条件(3):
-rn>URx···(18)
当满足不等式(18)时,判断正圆n的最左部分位于最小矩形R2的最右部分的右面,即,满足第三条件(3)。
第四条件(4)是正圆n的最右部分(即,正圆n中X坐标最大的点)位于最小矩形R2的最左部分(即,最小矩形R2中X坐标最小的点)的左面。使用下面的不等式(19)判断是否满足条件(4)。
rn<LLx···(19)
当满足不等式(19)时,判断正圆n的最右部分位于最小矩形R2的最左部分的左面,即,满足第四条件(4)。
当满足不等式(16)-(19)中的任何一个时,能够判断正圆n不包含最小矩形R2的任何部分。另一方面,当不满足不等式(16)-(19)中的任何一个时,判断正圆n包含最小矩形R2的至少一部分。
因此,当在本实施例中从(最小矩形R2的绘制所需要的)最外面的正圆开始连续地为每个正圆n执行绘制处理时,判断正圆n是否满足不等式(16)-(19)中的任何一个,并且当满足不等式(16)-(19)中的任何一个时,判断正圆n不包含最小矩形R2的任何部分。当判断正圆n不包含最小矩形R2的任何部分时,判断已经为最小矩形R2的绘制所需要的所有正圆执行了绘制处理。
在下面,将会参考图8描述由打印机控制单元10(CPU 11)执行的打印处理的处理流程。图8是打印处理的流程图。当CPU 11检测到(从接口21发送的用于向CPU 11通知打印命令的接收的)中断信号时,启动下述打印处理,该打印处理用于基于经由接口21从PC 100(伴随着打印命令)接收到的数据生成要由打印机1打印的图像数据并且打印出生成的图像数据。
在打印处理的开始,CPU 11(打印机控制单元10)判断从PC 100伴随着打印命令接收到的数据是否为XPS文档(根据XPS描述的文档)(S11)。当数据是XPS文档(S11:是)时,CPU 11从XPS数据存储器13a读出(已经借助于DMA(直接存储器存取)从接口21传输到XPS数据存储器13a的)XPS文档,分析XPS文档的内容,并且获取包括在XPS文档中的(与绘制指令相对应的)一个元素(S12)。
接下来,CPU 11判断S12中获取的元素是否为放射渐变画笔元素30(S13)。当获取的元素是放射渐变画笔元素30(S13:是)时,CPU11(判断获取的元素是用于绘制椭圆放射渐变的指令)执行将会在后面加以描述的椭圆放射渐变光栅化处理(图9)(S14)。
通过椭圆放射渐变光栅化处理,能够为由诸如路径元素40(请参见图2)的上级元素指定的渐变绘制区域生成由放射渐变画笔元素30指定的椭圆放射渐变,同时减少与椭圆放射渐变的绘制有关的负荷。在页存储器13f上光栅化生成的椭圆放射渐变。在步骤S14之后,处理进入步骤S16。
另一方面,当在S12中获取的(与绘制指令相对应的)元素不是放射渐变画笔元素30(S13:否)时,CPU 11执行与获取的元素相对应的光栅化处理,将通过光栅化处理生成的图像数据存储在页存储器13f中(S15),并且此后进入步骤S16。
在步骤S16中,CPU 11判断XPS文档是否还包括在S12中还没有提取的(获取的)(与绘制指令相对应的)元素。当XPS文档包括还没有提取的(与绘制指令相对应的)元素(S16:是)时,CPU 11返回到步骤S12以为下一个元素重复步骤S12-S16。
重复步骤S12-S16直到在S12中提取了XPS文档中包括的所有(与绘制指令相对应的)元素并且为所有这样的元素完成了光栅化处理(S14或者S15)(S16:否),由此在页存储器13f上光栅化由XPS文档指定的图像数据。
在S12中已经提取了XPS文档中包括的所有(与绘制指令相对应的)元素并且已经为所有这样的元素完成了光栅化处理(S14或者S15)(S16:否)的情况下,处理进入步骤S18。
同时,当在S11中从PC 100伴随着打印命令接收到的数据不是XPS文档(S11:否)时,CPU 11根据伴随着打印命令接收到的数据的内容生成(用于打印的)图像数据,然后将生成的图像数据存储在页存储器13f中(S17)。其后,处理进入步骤S18。
在步骤S18中,CPU 11基于在S11-S17中生成并存储在页存储器13f中的图像数据将信号发送到馈送电机驱动电路17和头驱动器20,由此驱动馈送电机16和喷墨头19并且将根据图像数据的图像打印在片材上(图8的打印处理完成)。
通过上面解释的打印处理(图8),在从PC 100接收了打印命令之后,能够基于伴随着打印命令的数据生成图像数据,并且能够将根据生成的图像数据的图像打印在片材上。
在打印处理中,当从PC 100接收XPS文档作为伴随着打印命令的数据时,分析XPS文档。当放射渐变画笔元素30被包括在XPS文档中时,执行椭圆放射渐变光栅化处理(在下面解释),由此允许打印机控制单元10(CPU 11)为由放射渐变画笔元素30的上级元素(例如,路径元素40)指定的渐变绘制区域生成由放射渐变画笔元素30指定的椭圆放射渐变,同时减少与渐变的绘制有关的负荷。
接下来,将会参考图9-13解释由打印机控制单元10(CPU 11)执行的作为图8中的步骤S14的椭圆放射渐变光栅化处理。图9是椭圆放射渐变光栅化处理的流程图。
执行椭圆放射渐变光栅化处理用于为由放射渐变元素30的上级元素(例如,路径元素40)指定的渐变绘制区域生成(由被包括在XPS文档中的放射渐变画笔元素30指定的)椭圆放射渐变。
当伴随着打印命令的数据是XPS文档并且放射渐变画笔元素30被包括在XPS文档中描述的元素中时,在打印处理(图8)中由打印机控制单元10(CPU 11)执行椭圆放射渐变光栅化处理。将会在下面联系用于图4A-4E中所示的椭圆放射渐变的绘制的前述原理来解释椭圆放射渐变光栅化处理(图9)。
在椭圆放射渐变光栅化处理的开始,CPU 11(打印机控制单元10)执行参数获取处理(S21),由此从放射渐变画笔元素30提取椭圆形状参数(其指定椭圆形状)和渐变图案参数(其指定要在椭圆形状中绘制的渐变图案)并且从放射渐变画笔元素30的上级元素(例如,路径元素40)提取指定渐变绘制区域(其中应绘制放射渐变)的参数。稍后将会参考图10详细地解释参数获取处理。该参数获取处理(S21)对应于图4A中所示的步骤S1。
接下来,CPU 11执行变换矩阵计算处理(S22),由此生成变换矩阵B,该变换矩阵B用于将由放射渐变画笔元素30指定的椭圆形状(请参见图4A)仿射变换成具有半径Rx和中心坐标(0,0)而渐变中心位于Y轴的非负部分的正圆形状(请参见图4C)。稍后将会参考图11详细地解释变换矩阵计算处理。该变换矩阵计算处理(S22)对应于图4B中所示的步骤S2-S5。
接下来,CPU 11执行绘制最小矩形设置处理(S23),由此设置包含整个渐变绘制区域(其参数已经从上级元素(例如,路径元素40)中提取)的最小矩形R,使用通过变换矩阵计算处理计算的变换矩阵B对最小矩形R进行仿射变换,将最小矩形R2(包含通过对最小矩形R的仿射变换获得的整个区域并且具有与扫描线平行的边)设置为用于正圆放射渐变(在通过变换矩阵B对椭圆形状的仿射变换获得的正圆形状中的放射渐变)的绘制的区域。稍后将会参考图12详细地解释绘制最小矩形设置处理。该绘制最小矩形设置处理(S23)对应于图4A-4C中所示的步骤S6-S8。
其后,CPU 11执行渐变生成处理(S24)并且结束图9的椭圆放射渐变光栅化处理。在渐变生成处理(S24)中,为通过绘制最小矩形设置处理已经设置的最小矩形R2绘制正圆放射渐变并且使用变换矩阵B的逆矩阵对其中已经绘制了放射渐变的最小矩形R2进行逆仿射变换。通过从逆仿射变换后的最小矩形R2切出渐变绘制区域,能够获得渐变绘制区域,其中已经生成了由放射渐变画笔元素30指定的(部分)椭圆放射渐变。稍后参考图13详细地解释渐变生成处理。该渐变生成处理(S24)对应于图4C和图4D中所示的步骤S9和S10。
接下来,参考图10将会解释由打印机控制单元10(CPU 11)执行的参数获取处理。图10是参数获取处理的流程图。在上述的椭圆放射渐变光栅化处理中由CPU 11执行下述处理,其用于从放射渐变画笔元素30和它的上级元素(例如,路径元素40)提取与椭圆放射渐变的绘制有关的参数。
首先,CPU 11从放射渐变画笔元素30中提取椭圆形状的中心坐标(Cx,Cy)、X半径Rx以及Y半径Ry(请参见图2和图3)作为(指定椭圆形状的)椭圆形状参数,并且将提取的参数存储在渐变参数存储器13b中(S31)。
接下来,CPU 11从放射渐变画笔元素30中提取渐变的中心坐标(Gx,Gy)、渐变的中心(起点)处的红/绿/蓝色值(Rs,Gs,Bs)和椭圆形状的外围(渐变的终点)处的红/绿/蓝色值(Re,Ge,Be)(请参见图2和图3)作为(指定要在椭圆形状中绘制的渐变图案的)渐变图案参数并且也将提取的参数存储在渐变参数存储器13b中(S22)。
接下来,CPU 11从椭圆放射渐变画笔元素30的上级元素(例如,路径元素40)中提取指定渐变绘制区域(应为其绘制椭圆放射渐变)的参数,将根据提取的参数确定的参数(例如,关于渐变绘制区域的向量信息)存储在绘制区域存储器13c中(S33),并且结束图10的参数获取处理。
通过上面的参数获取处理,从放射渐变画笔元素30和它的上级元素(例如,路径元素40)中提取关于椭圆放射渐变的绘制的参数,并且将椭圆形状参数(其指定椭圆形状)和渐变图案参数(其指定要在椭圆形状中绘制的渐变图案)存储在渐变参数存储器13b中,而将指定渐变绘制区域(应为其绘制椭圆放射渐变)的参数存储在绘制区域存储器13c中。
接下来,将参考图11解释由打印机控制单元10(CPU 11)执行的变换矩阵计算处理。图11是变换矩阵计算处理的流程图。在如上所述的椭圆放射渐变光栅化处理中由CPU 11执行用于计算变换矩阵B的处理,该变换矩阵B用于将由放射渐变画笔元素30指定的椭圆形状(请参见图4A)仿射变换成具有半径Rx和中心坐标(0,0)的正圆形状同时将渐变中心放置在Y轴的非负部分(请参见图4C)。
首先,CPU 11读出存储在渐变参数存储器13b中的椭圆形状参数,使用前述的等式(1)生成变换矩阵A,该变换矩阵A用于从由放射渐变画笔元素30指定的椭圆形状(请参见图4A)到具有半径Rx和中心坐标(0,0)的正圆形状(请参见图4B)的仿射变换,并且将生成的变换矩阵A存储在变换矩阵存储器13d中(S41)。
附带地,步骤S41可以被构造为通过使用等式(2)生成不同的变换矩阵A并且将生成的变换矩阵A存储在变换矩阵存储器13d中以便于将椭圆形状仿射变换到具有半径Ry和中心坐标(0,0)的正圆形状,如上所述。
步骤S41也可以被构造为通过使用等式(3)生成不同的变换矩阵A并且将生成的变换矩阵A存储在变换矩阵存储器13d中以便于将椭圆形状仿射变换到具有半径R(任意值)和中心坐标(0,0)的正圆形状,如上所述。
该步骤S41对应于图4B中所示的步骤S2。
在生成变换矩阵A并且将其存储在变换矩阵存储器13d中(S41)之后,CPU 11使用存储在变换矩阵存储器13d中的变换矩阵A对存储在渐变参数存储器13b中的渐变中心坐标(Gx,Gy)进行仿射变换(S42)。该步骤S42对应于图4B中所示的步骤S3。
接下来,CPU 11判断通过S42的仿射变换获得的渐变中心坐标是否位于Y轴的非负部分(S43)。当仿射变换之后的渐变中心坐标位于Y轴的非负部分(S43:是)时,CPU 11保持变换矩阵A存储在变换矩阵存储器13d中(以便于直接使用变换矩阵A作为变换矩阵B)(S44)并且结束图11的变换矩阵计算处理。
另一方面,当仿射变换之后的渐变中心坐标没有位于Y轴的非负部分(S43:否)时,CPU 11计算正Y轴和连接仿射变换之后的渐变中心与原点(0,0)的线段之间的角度θ(请参见图4B)(图4B中所示步骤S4),通过使用等式(4)和(5)将围绕原点(0,0)旋转角度θ的旋转操作(即,前述的旋转元素)添加至存储在变换矩阵存储器13d中的变换矩阵A来生成变换矩阵B(图4B中所示的步骤S5),通过覆写变换矩阵A将生成的变换矩阵B存储在变换矩阵存储器13d中(S45)并且结束图11的变换矩阵计算处理。
通过上述变换矩阵计算处理,能够生成变换矩阵B(用于将由放射渐变画笔元素30指定的椭圆形状(请参见图4A)仿射变换成具有半径Rx和中心坐标(0,0)的正圆形状,同时将渐变中心放置在Y轴的非负部分(请参见图4C))。
接下来,将会参考图12解释由打印机控制单元10(CPU 11)执行的绘制最小矩形设置处理。图12是绘制最小矩形设置处理的流程图。在如上所述的椭圆放射渐变光栅化处理中由CPU 11执行该处理,该处理用于将最小矩形R2(请参见图4C)设置为用于正圆放射渐变(通过使用变换矩阵B对椭圆形状的仿射变换获得的正圆形状中的放射渐变)的绘制的区域。
首先,CPU 11基于指定存储在绘制区域存储器13c中的渐变绘制区域的参数设置包含整个渐变绘制区域的最小矩形R(S51)。接下来,CPU 11使用最终存储在变换矩阵存储器13d中的变换矩阵B对最小矩形R进行仿射变换(S52)。这些步骤S51和S52分别对应于图4A中所示的步骤S6和S7。
通过步骤S52,能够在通过使用变换矩阵B对椭圆形状的仿射变换获得的正圆形状中确定与最小矩形R(包含应为其绘制椭圆放射渐变的整个渐变绘制区域)相对应的区域。
由于在S51中已经设置了作为包含整个渐变绘制区域的最小矩形区域的最小矩形R并且在S52中对最小矩形R执行仿射变换,所以能够对矩形区域(最小矩形R)执行S52中的仿射变换。
换言之,能够只通过对最小矩形R的四个顶点的坐标的仿射变换来进行S52中的仿射变换。因此,即使当渐变绘制区域具有复杂的形状时,也能够使仿射变换所需要的计算量较小,由此能够减少与渐变的绘制有关的负荷。
在完成S52之后,CPU 11将最小矩形R2(包含通过对最小矩形R的仿射变换获得的整个区域并且具有与扫描线平行的边)设置为用于正圆放射渐变(在通过使用变换矩阵B对椭圆形状的仿射变换获得的正圆形状中的放射渐变)的绘制的区域(S53)并且结束图12的绘制最小矩形设置处理。将在该步骤S53中设置的最小矩形R2的坐标存储在最小矩形存储器13e中。该步骤S53对应于图4C中所示的步骤S8。
通过步骤S53,能够在通过仿射变换获得的正圆形状中确定(设置)最小矩形R2,该最小矩形R2包含与渐变绘制区域相对应的区域。因此,在将会在下面解释的渐变生成处理(图13)中,能够通过为最小矩形R2绘制正圆放射渐变然后使用变换矩阵B的逆矩阵对最小矩形R2(其中已经绘制了正圆放射渐变)进行逆仿射变换,来生成其中已经为渐变绘制区域绘制了椭圆放射渐变的图像。
此外,由于已经将最小矩形R2设置为具有与扫描线平行的边的矩形区域,所以在该光栅化处理中能够使每根扫描线上的最小矩形R2的范围对于所有与最小矩形R2相交的扫描线来说均等,由此能够使每根扫描线上用于绘制的开始位置和结束位置的计算变得更加容易并且能够进一步减少与渐变的绘制有关的负荷。
此外,由于最小矩形R2被设置为包含与最小矩形R相对应的整个区域(在正圆形状中)并且具有与扫描线平行的边的最小矩形区域,所以能够使最小矩形R2的面积(尺寸)尽可能地小。由于最小矩形R也被设置为包含要被绘制的放射渐变的全部最小矩形区域,所以最小矩形R2的面积(尺寸)能够被减少到最小而使最小矩形R2包含与放射渐变区域(要绘制的放射渐变)相对应的整个区域。由于其中绘制了正圆放射渐变的区域的最小化,所以能够显著地减少与渐变的绘制有关的负荷。
接下来,将会参考图13解释由打印机控制单元10(CPU 11)执行的渐变生成处理。图13是渐变生成处理的流程图。在如上所述的椭圆放射渐变光栅化处理中由CPU 11执行该处理,该处理用于生成其中已经为由上级元素(例如,路径元素40)指定的渐变绘制区域绘制了由放射渐变画笔元素30指定的椭圆放射渐变的图像。
首先,CPU 11使用存储在变换矩形存储器13d中的变换矩阵B对存储在渐变参数存储器13b中的渐变中心坐标(Gx,Gy)进行仿射变换(S61),由此将渐变中心放置在Y轴的非负部分如图4C中所示。该步骤S61对应于图4A中所示的步骤S7。
在接下来的步骤S62-S64中,CPU 11确定最小矩形R2的绘制所需要的正圆(在正圆放射渐变中用统一的色值绘制其中的每一个)的最外面的一个。在步骤S62中,CPU 11计算正圆的数量(M),在正圆放射渐变中用统一的色值绘制所述正圆中的每一个,并且将变量n设置为M-1。
变量n用于在正圆放射渐变中选择(指定)图4C中所示的正圆(0,1,......,n,......(M-1))(用统一的色值绘制其中的每一个)中的一个。将为由变量n指定的每个正圆n执行后面的步骤。因此,通过步骤S62选择在正圆放射渐变中的最里面的正圆(M-1),并且首先为最里面的正圆(M-1)执行后面的步骤。
顺便说明,能够通过将渐变的起点和终点之间的色值差除以前述的色值变化k来计算正圆的数量(M)。每当变量n被设置为新值(n)时,将该值(n)存储在暂时地在RAM 13中保留的存储区域(用于变量n)中。
接下来,CPU 11使用等式(10)-(12)计算正圆n的中心坐标Cn(Cnx,Cny)和半径rn(S63)。在本实施例中,由于(通过使用变换矩阵B进行仿射变换获得的)正圆形状的中心位于原点并且将渐变中心放置在Y轴的非负部分,所以正圆n的中心Cn的X坐标Cnx是0,如等式(10)中所示。
接下来,CPU 11从存储最小矩形R2的坐标的最小矩形存储器13e中读出最小矩形R2的右下角(即最小矩形R2中X坐标和Y坐标都最大的点)的坐标(URx,URy)和最小矩形R2的左上角(即,最小矩形R2中X坐标和Y坐标都最小的点)的坐标(LLx,LLy),并且然后基于所述两个角的坐标(URx,URy)和(LLx,LLy)以及正圆n的中心坐标Cn(0,Cny)以及半径rn来判断正圆n是否包含最小矩形R2的全部(S64)。通过判断是否满足图6中所示的条件进行该判断。
当判断正圆n不包含整个最小矩形R2(S64:否)时,CPU 11以1递减变量n(S65)并且返回到步骤S63,由此选择下一个(紧邻的外面的)正圆并且然后为下一个正圆执行步骤S63和S64,即,使用等式(10)-(12)计算紧邻的外面的正圆的中心坐标和半径并且基于计算的中心坐标和半径判断紧邻的外面的正圆是否包含整个最小矩形R2。
重复步骤S63-S65直到在S64中判断正圆n包含整个最小矩形R2(S64:是),由此从最里面的正圆朝着正圆形状的外围连续地判断(要用统一的色值绘制的)每个正圆是否包含整个最小矩形R2。
当在S64中判断当前处理的正圆n包含整个最小矩形R2(S64:是)时,能够将正圆n确定为最小矩形R2的绘制所需要的最外面的正圆n。
在接下来的步骤S66-S78中,CPU 11通过从最小矩形R2的绘制所需要的最外面的正圆n用相应的色值连续地覆写每个正圆n的内部,来绘制应为最小矩形R2生成的正圆放射渐变。这些步骤S66-S78对应于图4C中所示的步骤S9。
顺便说明,以绘制线(X轴方向的扫描线)为单位执行每个正圆中的绘制。将通过绘制获得放射渐变存储在RAM 13中(光栅化)。
在步骤S66中,CPU 11判断正圆n的最下部分(即,正圆n中Y坐标最大的点)的Y坐标(Cny+rn)是否大于最小矩形R2的最下部分(即,最小矩形R2中Y坐标最大的点)的Y坐标URy。如果是(S66:是),则CPU 11将绘制线的Y坐标Ly(在下文中被称为“绘制线坐标”)设置在最小矩形R2的最下部分的Y坐标URy(S67)并且进入步骤S69。通过步骤S67,将由最小矩形R2的最下部分的Y坐标URy指定的绘制线确定为要用从等式(13)计算的正圆n的色值绘制的第一绘制线。
另一方面,当在S66中判断正圆n的最下部分的Y坐标(Cny+rn)不大于最小矩形R2的最下部分的Y坐标URy(S66:否)时,CPU 11将绘制线坐标Ly设置在正圆n的最下部分的Y坐标(Cny+rn)(S68)并且进入步骤S69。通过步骤S68,将由正圆n的最下部分的Y坐标(Cny+rn)指定的绘制线确定为要用从等式(13)计算的正圆n的色值绘制的第一绘制线。每当绘制线坐标Ly被设置在新值(Ly)时,将值(Ly)存储在暂时在RAM 13中保留的存储区域(用于绘制线坐标Ly)中。
在步骤S69中,CPU 11基于绘制线坐标Ly和正圆n的中心坐标Cn(0,Cny)和半径rn计算绘制线坐标Ly处的正圆n上的两个点的X坐标,并且将获得的两个X坐标指定为绘制末端坐标Lx(S69)。每次设置绘制末端坐标Lx的值(Lx)时,将值(Lx)存储在暂时在RAM 13中保留的存储区域(用于绘制端坐标Lx)中。
接下来,CPU 11通过将每个绘制末端坐标Lx与最小矩形R2的右端和左端的X坐标URx和LLx相比较,来判断两个绘制末端坐标Lx是否在最小矩形R2的X坐标范围内(S70)。
当判断绘制端坐标Lx中的至少一个不在最小矩形R2的X坐标范围内(S70:否)时,CPU 11用更靠近绘制末端坐标Lx的(最小矩形R2的右端或左端的)X坐标URx或LLx的值代替(不在最小矩形R2的X坐标的范围内的)绘制末端坐标Lx的值(S71)并且其后进入步骤S72。
另一方面,当判断两个绘制末端坐标Lx都在最小矩形R2的X坐标范围内(S70:是)时,CPU 11进入步骤S72同时跳过S71。在这样的情况下,保持而不改变在S69中已经设置的绘制末端坐标Lx。
能够将夹在两个绘制端坐标Lx之间的(在绘制线上的)范围确定为应用从等式(13)计算的正圆n的色值绘制的(在绘制线坐标Ly处的绘制线上的)部分。在步骤S72中,CPU 11用从等式(13)计算的正圆n的色值绘制夹在两个绘制末端坐标Lx之间的(在绘制线上的)范围。因此,在由绘制线坐标Ly指定的绘制线上,能够用与正圆n相对应的色值绘制最小矩形R2中的规定的部分。
在完成S72之后,CPU 11以1递减绘制线坐标Ly(S73),由此绘制线被切换到下一根(紧邻的上面的)线。接下来,CPU 11判断在S73中更新的绘制线坐标Ly是否处于最小矩形R2的Y坐标范围内和正圆n的Y坐标范围内(S74)。
通过判断绘制线坐标Ly是否位于下述坐标之间来进行S74的判断:最小矩形R2的最下部分(即,最小矩形R2中Y坐标最大的点)的Y坐标URy和最小矩形R2的最上部分(即,最小矩形R2中Y坐标最小的点)的Y坐标LLy之间;以及正圆n的最下部分(即,正圆n中Y坐标最大的点)的Y坐标(Cny+rn)和正圆n的最上部分(即,正圆n中Y坐标最小的点)的Y坐标(Cny-rn)之间。
当判断绘制线坐标Ly位于最小矩形R2的Y坐标范围内和正圆n的Y坐标范围内(S74:是),CPU 11返回到步骤S69并且为了更新的绘制线(绘制线坐标Ly)再次执行步骤S69-S74。
只要在S74中判断绘制线坐标Ly位于最小矩形R2的Y坐标范围并且位于正圆n的Y坐标范围(S74:是),则重复步骤S69-S74,由此使用从等式(13)中计算的色值能够绘制存在于最小矩形R2的正圆n内部的部分。
另一方面,当在S74中判断绘制线坐标Ly不是位于最小矩形R2的Y坐标范围或者不是位于正圆n的Y坐标范围时(S74:否),CPU11判断变量n是否小于M-1(正圆(使用统一的色值绘制正圆中的每一个)的数量M减去1)(S75)。
当变量n是M-1时,即,当变量n不是小于M-1时(M75:否),CPU 11(判断在正圆n的内部不存在其它的正圆(要使用统一的色值绘制的))进入步骤S79。
另一方面,当变量n小于M-1时(S75:是),CPU 11(判断在正圆n的内部至少存在一个正圆(要使用统一的色值绘制的))以1递增变量n(S76),由此选择紧邻的内正圆(在当前处理的正圆n的内部)作为下一个处理目标。
接下来,CPU 11使用等式(10)-(12)计算(新)正圆n的中心坐标Cn和半径rn(S77)然后判断正圆n是否包含最小矩形R2的至少一部分(S78),目的是为了判断是否为所有的最小矩形R2的绘制所需要的所有正圆已经完成了绘制。
通过从存储最小矩形R2的坐标的最小矩形存储器13e中读出最小矩形R2的右下角的坐标(URx,URy)和最小矩形R2的左上角的坐标(LLx,LLy),然后基于中心坐标(URx,URy)和(LLx,Lly)以及正圆n的半径rn判断是否满足图7中所示的条件(1)-(4)中的至少一个,进行对S78的判断。
当判断正圆n不包含最小矩形R2的部分时(S78:是),CPU 11(判断为最小矩形R2的绘制所需要的所有正圆已经完成了绘制)进入步骤S79。
另一方面,当判断正圆n包含最小矩形R2的最少一部分(S78:是),CPU 11(判断还没有为最小矩形R2的绘制所需要的所有正圆完成绘制)返回到步骤S66,由此为在S76中最新选择的正圆n(紧邻的内正圆)执行步骤S66-S74,由此使用从等式(13)中计算的色值绘制存在于最小矩形R2中的在最新选择的正圆n的内部的部分。
只要在S75中判断变量n小于M-1(S75:是)并且在S78中判断正圆n包含最小矩形R2的最少一部分(S78:是),重复步骤S66-S74,由此能够为最小矩形R2的绘制所需要的每个正圆的内部完成上面所解释的绘制,由此能够为最小矩形R2生成正圆放射渐变。
在(在S75中当判断变量n是M-1(即,不小于M-1)(S75:否)时或者当在S78中判断正圆n不包含最小矩形R2的部分(S78:否)时到达的)步骤S79中,CPU 11计算存储在变换矩阵存储器13d中的变换矩阵B的逆矩阵C。
接下来,CPU 11使用计算的逆矩阵C对最小矩形R2(其中已经绘制了正圆放射渐变)进行逆仿射变换(S80),由此能够在含有渐变绘制区域(它的参数已经存储在绘制区域存储器13c中)的逆仿射变换后的最小矩形R2中生成椭圆放射渐变。该步骤S80对应于图4D中所示的步骤S10。
最后,CPU 11从逆仿射变换后的最小矩形R2提取渐变绘制区域(其参数已经存储在绘制区域存储器13c中),将提取的渐变绘制区域(的图像数据)以位图的格式存储在页存储器13h中(S81),并且结束S13的渐变生成处理,由此完成了椭圆放射渐变光栅化处理(图9)。
通过如上解释的椭圆放射渐变光栅化处理,能够为由上级元素(例如,路径元素40)指定的渐变绘制区域生成由放射渐变画笔元素30指定的椭圆放射渐变。
在渐变生成处理(图13)中,通过步骤S63-S65和S77确定用最小矩形R2中的正圆放射渐变的绘制所需要的色值绘制的正圆,并且仅为已确定的正圆执行绘制。换言之,确定最小矩形R2中绘制所不需要的正圆并且防止对不需要的正圆执行绘制相关的处理,由此减少与渐变的绘制相关的负荷。
在如上解释的由打印机控制单元10执行的椭圆放射渐变光栅化处理(图9-13)中,首先执行正圆放射渐变的绘制(没有直接绘制椭圆放射渐变),由此能够基于正圆的轨迹计算颜色变化点(在颜色变化点周围绘制不同颜色)。由于与直接绘制椭圆放射渐变的情况相比能够简化计算,所以能够显著地减少与渐变的绘制有关的负荷。
此外,由于为包含与渐变绘制区域对应的区域的最小矩形R2执行正圆放射渐变的绘制,所以能够减小其中绘制了正圆放射渐变的区域(与绘制了整个正圆放射渐变的情况相比),而至少为与渐变绘制区域相对应的区域实现了正圆放射渐变的绘制,由此能够进一步减少与渐变的绘制有关的负荷。
同时,计算(基于椭圆形状参数生成的用于将椭圆形状变换成正圆形状的)变换矩阵B的逆矩阵C,并且通过使用逆矩阵C对其中已经绘制了正圆放射渐变的最小矩形R2进行逆仿射变换,由此能够为由上级元素(例如:路径元素40)指定的渐变绘制区域容易地生成根据由放射渐变画笔元素30指定的渐变图案和椭圆形状的放射渐变。
因此,在根据XPS描述的文档中存在放射渐变画笔元素的情况下,能够生成由放射渐变画笔元素指定的椭圆放射渐变,同时减少与渐变的绘制有关的负荷。
如上所述,通过根据本实施例的打印机1的打印机控制单元10,使用变换矩阵将(由放射渐变画笔元素指定的)椭圆形状仿射变换成正圆形状,还使用相同的变换矩阵对包含(由诸如路径元素的上级元素指定的)渐变绘制区域进行仿射变换,并且为通过对包含通过对包含渐变绘制区域的区域的仿射变换获得的区域的区域绘制正圆放射渐变,由此能够减少与放射渐变的绘制有关的负荷。通过对其中已经绘制了正圆放射渐变的区域的逆仿射变换,能够获得其中已经绘制了椭圆放射渐变的渐变绘制区域。因此,能够生成椭圆放射渐变同时减少与放射渐变的绘制有关的负荷。
此外,利用根据本实施例的打印机1,当伴随着打印命令从PC 100接收到的数据包括用于绘制椭圆放射渐变的指令时,由上述打印机控制单元10基于绘制指令生成椭圆放射渐变。因此,能够通过生成椭圆放射渐变同时减少与放射渐变的绘制有关的负荷来执行椭圆放射渐变的打印。
虽然在上面已经给出了根据本发明的优选实施例,但是本发明不限于特别示出的实施例,并且在不偏离由权利要求中所描述的本发明的范围和精神的情况下,各种的修改、设计变化等等都是可能的。
例如,虽然在上面实施例中,由XPS文档的放射渐变画笔元素(图像绘制指令)指定的椭圆形状的长轴和短轴被设置在X轴方向和Y轴方向中,但是椭圆形状的长轴和短轴可以被设置在任意方向。
在该情况下,能够首先执行到由图像绘制指令指定的椭圆形状的旋转仿射变换以便于将椭圆形状的长轴和短轴设置在X轴方向和Y轴方向,对渐变绘制区域执行相同的仿射变换,根据参考图4A-4E解释的绘制原理为仿射变换后的渐变绘制区域生成椭圆放射渐变,并且最终执行对获得的椭圆放射渐变的逆旋转仿射变换以将(旋转的)椭圆形状的长轴和短轴返回到由图像绘制指令指定的原始方向。
虽然在以上实施例中,由包括在放射渐变画笔元素中的放射渐变画笔渐变停止元素指定渐变的中心(起点)处的色值和椭圆形状的外围处(渐变的终点处)的色值,但是上述实施例也可应用于放射渐变画笔渐变停止元素进一步包括指定渐变的起点和终点之间的任意点处上的色值的渐变停止元素的情况。
在这样的情况下(当起点与位于从起点延伸并且经过任意点的线上的渐变的终点之间的距离被归一化为“1”时),由指定任意点处的色值的渐变停止元素的“偏移量”属性表示的值表示渐变的起点和由渐变停止元素为其指定色值的任意点之间的(相对)距离d。因此,能够通过将(离开正圆渐变的中心(起点)(相对)距离d的)相应的点的色值设置为由渐变停止元素指定的任意点的色值,来为正圆形状(在正圆形状中)执行渐变的绘制。
虽然在上述实施例中在渐变生成处理(图13)中在生成用于最小矩形R2的正圆放射渐变之后计算变换矩阵B的逆矩阵C,但是逆矩阵计算的时序不限于上述实施例;可以在生成变换矩阵B之后并且对其中已经绘制了放射渐变的最小矩形R2的逆仿射变换之前的任何时间计算逆矩阵C。
虽然在上述实施例中当伴随着打印命令从PC 100接收到的数据是XPS文档并且放射渐变画笔元素(作为用于绘制椭圆放射渐变的指令)被包括在XPS文档中时(在伴随着打印命令从PC 100接收到的数据是XPS文档并且放射渐变画笔元素(作为用于绘制椭圆放射渐变的指令)被包括在XPS文档中的情况下),执行椭圆放射渐变光栅化处理(图9),但是执行椭圆放射渐变光栅化处理的情况不限于本实施例。可以在当用于绘制椭圆放射渐变的指令被包括在伴随着打印命令从PC 100接收的PDL数据(PDL(页面描述语言)中描述的数据)中时的任何时候,执行椭圆放射渐变光栅化处理。
虽然在上述实施例中在打印机1的内部提供了打印机控制单元10,但是可以在打印机1的外部提供打印机控制单元10并且经由通信电缆或者无线通信将其连接至打印机1。也可以在PC 100的内部提供打印机控制单元10。
虽然在以上实施例中,由打印机控制单元10执行椭圆放射渐变光栅化处理(图9)以生成要由打印机1打印的椭圆放射渐变,但是不仅可以通过这样的打印机控制单元执行椭圆放射渐变光栅化处理而且可以通过控制用于输出椭圆放射渐变的装置的任何单元/装置来执行椭圆放射渐变光栅化处理。
例如,在使用显示器来显示椭圆放射渐变的情况下,用于控制显示器的显示控制单元可以执行椭圆放射渐变光栅化处理(图9)并且在用于存储要在显示器上显示的图像数据的帧存储器上光栅化通过该处理生成的椭圆放射渐变。
虽然在上述实施例中打印机1将图像(例如,椭圆放射渐变)打印在作为打印介质的片材(例如,纸)上,但是打印机1也可以被构造为在其它类型的打印介质(织物、塑料、乙烯基等等)上执行打印。
虽然在上述实施例中生成变换矩阵B以便于将仿射变换之后的渐变的中心放置在Y轴的非负部分,但是也可以生成变换矩阵B以便于将(仿射变换之后的)渐变中心放置在Y轴的非正部分。也能够生成变换矩阵B以便于将(仿射变换之后的)渐变中心放置在X轴的非负部分或者X轴的非正部分。
虽然在上述实施例中为渐变绘制区域设置了作为包含整个渐变绘制区域的最小矩形区域的最小矩形R,但是为渐变绘制区域设置的区域没有必要是最小矩形区域;也能够只是设置包含有整个渐变绘制区域的矩形区域、包含整个渐变绘制区域的三角形区域,等等。即使在这样的情况下,也能够简化与仿射变换有关的计算并且能够减少与渐变的绘制有关的负荷。
虽然在上述实施例中为仿射变换后的最小矩形R设置了作为包含整个仿射变换后的最小矩形R的最小矩形区域(通过对最小矩形R的仿射变换获得的区域)并且具有与扫描线平行的边的最小矩形R2,但是为仿射变换后的最小矩形R设置的区域没有必要为最小矩形区域;也能够只是设置比正圆形状小的矩形区域,该矩形区域包含整个仿射变换后的最小矩形R并且具有与扫描线平行的边。即使在这样的情况下,也能够更加容易地计算每条扫描线上的用于绘制的开始位置和结束位置并且能够减少与渐变的绘制有关的负荷。
虽然在上述实施例中绘制了渐变的椭圆形状的内部,但是也能够根据在放射渐变画笔元素中包括的“扩展方法(SpreadMethod)”属性的类型(平铺、反射、重复)绘制椭圆形状的外部的区域。

Claims (15)

1.一种图像生成装置,包括:
目标数据接收单元,所述目标数据接收单元接收包括用于绘制椭圆放射渐变的图像绘制指令的目标数据;
获取单元,所述获取单元从接收到的目标数据获取所述图像绘制指令;
提取单元,所述提取单元从获取的图像绘制指令提取指定椭圆形状的椭圆形状参数、指定要在所述椭圆形状中绘制的渐变图案的渐变图案参数、以及指定其中绘制所述椭圆放射渐变的绘制区域的绘制区域参数;
变换矩阵生成单元,所述变换矩阵生成单元基于所述椭圆形状参数生成用于将所述椭圆形状变换为正圆形状的变换矩阵;
逆矩阵计算单元,所述逆矩阵计算单元计算所述变换矩阵的逆矩阵;
第一变换单元,所述第一变换单元使用所述变换矩阵变换所述渐变图案参数;
第二变换单元,所述第二变换单元使用所述变换矩阵变换包含由所述绘制区域参数指定的所述绘制区域的第一区域;
绘制单元,所述绘制单元基于通过所述第一变换单元变换的变换后的渐变图案参数在第二区域中绘制用于通过用所述变换矩阵进行的所述变换获得的所述正圆形状的放射渐变,其中所述第二区域包含通过所述第二变换单元变换的变换后的第一区域;以及
渐变生成单元,所述渐变生成单元通过使用所述逆矩阵对所述第二区域进行逆变换而在所述绘制区域中生成所述椭圆放射渐变,在所述第二区域中已经通过所述绘制单元绘制了用于所述正圆形状的所述放射渐变。
2.根据权利要求1所述的图像生成装置,进一步包括第一矩形区域设置单元,所述第一矩形区域设置单元将包含整个所述绘制区域的第一矩形区域设置为所述第一区域。
3.根据权利要求1所述的图像生成装置,其中:
所述绘制单元被构造为以用于图像绘制的扫描线为单位绘制所述放射渐变,并且
所述图像生成装置进一步包括第二矩形区域设置单元,所述第二矩形区域设置单元将第二矩形区域设置为所述第二区域,其中所述第二矩形区域包含整个由所述第二变换单元变换的变换后的第一区域并且具有与所述扫描线平行的边。
4.根据权利要求1所述的图像生成装置,其中:
通过确定多个正圆执行用于所述正圆形状的所述放射渐变的绘制,要用统一的颜色绘制所述多个正圆中的每一个并且所述多个正圆的颜色彼此不同,和
所述图像生成装置进一步包括正圆选择单元,所述正圆选择单元选择所述多个正圆中的一个或者多个正圆,所选择的一个或多个正圆对于通过所述绘制单元在所述第二区域中绘制所述放射渐变是必要的,和
所述绘制单元基于通过所述正圆选择单元选择的所述正圆在所述第二区域中绘制所述正圆形状中的所述放射渐变。
5.根据权利要求1-4中的任何一项所述的图像生成装置,其中:
所述目标数据接收单元被构造为接收根据XML文件规格描述的目标数据,并且
所述图像生成装置进一步包括指令判断单元,所述指令判断单元判断如果所述图像绘制指令包括放射渐变画笔元素,则所述图像绘制指令包括用于绘制椭圆放射渐变的指令,和
所述提取单元从所述放射渐变画笔元素提取所述椭圆形状的中心坐标、长轴半径和短轴半径作为所述椭圆形状参数,同时从所述放射渐变画笔元素提取所述椭圆放射渐变的中心坐标作为所述渐变图案参数。
6.一种打印装置,所述打印装置包括生成图像的图像生成单元和将由所述图像生成单元生成的所述图像打印在打印介质上的打印单元,其中所述图像生成单元包括:
目标数据接收单元,所述目标数据接收单元接收包括用于绘制椭圆放射渐变的图像绘制指令的目标数据;
获取单元,所述获取单元从接收到的目标数据获取所述图像绘制指令;
提取单元,所述提取单元从获取的图像绘制指令提取指定椭圆形状的椭圆形状参数、指定要在所述椭圆形状中绘制的渐变图案的渐变图案参数、以及指定其中绘制所述椭圆放射渐变的绘制区域的绘制区域参数;
变换矩阵生成单元,所述变换矩阵生成单元基于所述椭圆形状参数生成用于将所述椭圆形状变换为正圆形状的变换矩阵;
逆矩阵计算单元,所述逆矩阵计算单元计算所述变换矩阵的逆矩阵;
第一变换单元,所述第一变换单元使用所述变换矩阵变换所述渐变图案参数;
第二变换单元,所述第二变换单元使用所述变换矩阵变换包含由所述绘制区域参数指定的所述绘制区域的第一区域;
绘制单元,所述绘制单元基于通过所述第一变换单元变换的变换后的渐变图案参数在第二区域中绘制用于通过用所述变换矩阵进行的所述变换获得的所述正圆形状的放射渐变,其中所述第二区域包含通过所述第二变换单元变换的变换后的第一区域;以及
渐变生成单元,所述渐变生成单元通过使用所述逆矩阵对所述第二区域进行逆变换来在所述绘制区域中生成所述椭圆放射渐变,在所述第二区域中已经通过所述绘制单元绘制了用于所述正圆形状的所述放射渐变。
7.根据权利要求6所述的打印装置,其中所述图像生成单元进一步包括第一矩形区域设置单元,所述第一矩形区域设置单元将包含整个所述绘制区域的第一矩形区域设置为所述第一区域。
8.根据权利要求6所述的打印装置,其中:
所述绘制单元被构造为以用于图像绘制的扫描线为单位绘制所述放射渐变,并且
所述图像生成单元进一步包括第二矩形区域设置单元,所述第二矩形区域设置单元将第二矩形区域设置为所述第二区域,其中所述第二矩形区域包含整个由所述第二变换单元变换的变换后的第一区域并且具有与所述扫描线平行的边。
9.根据权利要求6所述的打印装置,其中:
通过确定多个正圆来执行所述正圆形状中的所述放射渐变的绘制,要用统一的颜色绘制所述多个正圆中的每一个并且所述多个正圆的颜色彼此不同,并且,
所述图像生成单元进一步包括正圆选择单元,所述正圆选择单元选择所述多个正圆中的一个或者多个正圆,所选择的一个或多个正圆对于在所述第二区域中绘制所述放射渐变是必要的,并且
所述绘制单元基于所选择的一个或者多个正圆在所述第二区域中绘制用于所述正圆形状的所述放射渐变。
10.根据权利要求6-9中的任何一项所述的打印装置,其中:
所述目标数据接收单元被构造为接收根据XML文件规格描述的目标数据,并且
所述图像生成单元进一步包括指令判断单元,所述指令判断单元判断如果所述图像绘制指令包括放射渐变画笔元素,则所述图像绘制指令包括用于绘制椭圆放射渐变的指令,和
所述提取单元从所述放射渐变画笔元素提取所述椭圆形状的中心坐标、长轴半径和短轴半径作为所述椭圆形状参数,同时从所述放射渐变画笔元素提取所述椭圆放射渐变的中心坐标作为所述渐变图案参数。
11.一种图像生成方法,包括:
目标数据接收步骤,所述目标数据接收步骤接收包括用于绘制椭圆放射渐变的图像绘制指令的目标数据;
获取步骤,所述获取步骤从接收到的目标数据获取所述图像绘制指令;
提取步骤,所述提取步骤从获取的图像绘制指令提取指定椭圆形状的椭圆形状参数、指定要在所述椭圆形状中绘制的渐变图案的渐变图案参数、以及指定其中绘制所述椭圆放射渐变的绘制区域的绘制区域参数;
变换矩阵生成步骤,所述变换矩阵生成步骤基于所述椭圆形状参数生成用于将所述椭圆形状变换为正圆形状的变换矩阵;
逆矩阵计算步骤,所述逆矩阵计算步骤计算所述变换矩阵的逆矩阵;
第一变换步骤,所述第一变换步骤使用所述变换矩阵变换所述渐变图案参数;
第二变换步骤,所述第二变换步骤使用所述变换矩阵变换包含由所述绘制区域参数指定的所述绘制区域的第一区域;
绘制步骤,所述绘制步骤基于通过所述第一变换步骤变换的变换后的渐变图案参数在第二区域中绘制用于通过用所述变换矩阵进行的所述变换获得的所述正圆形状的放射渐变,其中所述第二区域包含通过所述第二变换步骤变换的变换后的第一区域;以及
渐变生成步骤,所述渐变生成步骤通过使用所述逆矩阵对所述第二区域进行逆变换来在所述绘制区域中生成所述椭圆放射渐变,在所述第二区域中已经通过所述绘制步骤绘制了用于所述正圆形状的所述放射渐变。
12.根据权利要求11所述的图像生成方法,进一步包括第一矩形区域设置步骤,所述第一矩形区域设置步骤设置包含整个所述绘制区域的第一矩形区域。
13.根据权利要求11所述的图像生成方法,其中:
所述绘制步骤被构造为以用于图像绘制的扫描线为单位绘制所述放射渐变,并且
所述图像生成方法进一步包括第二矩形区域设置步骤,所述第二矩形区域设置步骤将第二矩形区域设置为所述第二区域,其中所述第二矩形区域包含整个通过所述第二变换步骤变换的变换后的第一区域并且具有与所述扫描线平行的边。
14.根据权利要求11所述的图像生成方法,其中:
通过确定多个正圆来执行用于所述正圆形状的所述放射渐变的绘制,要用统一的颜色绘制所述多个正圆中的每一个并且所述多个正圆的颜色彼此不相同,并且
所述图像生成方法进一步包括正圆选择步骤,所述正圆选择步骤选择所述多个正圆中的一个或者多个正圆,所选择的一个或者多个正圆对于在所述第二区域中绘制所述放射渐变是必要的,并且
所述绘制步骤基于所选择的一个或者多个正圆在所述第二区域中绘制用于所述正圆形状的所述放射渐变。
15.根据权利要求11-14中的任何一项所述的图像生成方法,其中:
所述目标数据接收步骤被构造为接收根据XML文件规格描述的目标数据,并且
所述图像生成方法进一步包括指令判断步骤,所述指令判断步骤判断如果所述图像绘制指令包括放射渐变画笔元素,则所述图像绘制指令包括用于绘制椭圆放射渐变的指令,和
所述提取步骤从所述放射渐变画笔元素提取所述椭圆形状的中心坐标、长轴半径和短轴半径作为所述椭圆形状参数,同时从所述放射渐变画笔元素提取所述椭圆放射渐变的中心坐标作为所述渐变图案参数。
CN2009101330277A 2008-03-31 2009-03-31 图像生成装置、图像生成方法及打印装置 Active CN101625764B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008093315 2008-03-31
JP2008093315A JP4518172B2 (ja) 2008-03-31 2008-03-31 画像生成装置および印刷装置
JP2008-093315 2008-03-31

Publications (2)

Publication Number Publication Date
CN101625764A CN101625764A (zh) 2010-01-13
CN101625764B true CN101625764B (zh) 2012-05-30

Family

ID=40863599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101330277A Active CN101625764B (zh) 2008-03-31 2009-03-31 图像生成装置、图像生成方法及打印装置

Country Status (4)

Country Link
US (1) US8040566B2 (zh)
EP (1) EP2107526B1 (zh)
JP (1) JP4518172B2 (zh)
CN (1) CN101625764B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4513888B2 (ja) * 2008-03-31 2010-07-28 ブラザー工業株式会社 画像生成装置および印刷装置
JP4572947B2 (ja) * 2008-03-31 2010-11-04 ブラザー工業株式会社 画像生成装置および印刷装置
KR101501471B1 (ko) * 2008-09-03 2015-03-18 삼성전자주식회사 인쇄 제어 방법, 인쇄 제어 단말장치, 및 화상형성장치
WO2013118190A1 (ja) * 2012-02-10 2013-08-15 三菱電機株式会社 グラデーション描画装置
CN104809684B (zh) * 2015-04-02 2018-03-27 华为技术有限公司 图形处理方法、装置及系统
CN107833227B (zh) * 2017-10-31 2021-11-26 苏州乐米信息科技股份有限公司 一种圆形裁剪区域的绘制方法及其系统
CN111091121B (zh) * 2019-11-22 2022-08-26 重庆大学 一种基于图像处理的椭圆表盘检测矫正的方法
CN111000359A (zh) * 2019-12-25 2020-04-14 李博 美甲装置及美甲机

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1637843A (zh) * 2003-12-24 2005-07-13 奥林巴斯株式会社 渐变图像生成装置和渐变图像生成方法
US6985260B1 (en) * 1999-09-27 2006-01-10 Canon Kabushiki Kaisha Apparatus and method for drawing a gradient fill object

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910005773B1 (ko) 1988-05-19 1991-08-03 주식회사 에스케이씨 고도전성 티오펜계 중합체의 제조방법
JP3099620B2 (ja) * 1993-12-22 2000-10-16 三菱自動車エンジニアリング株式会社 立体図の作図方法
JP3554034B2 (ja) * 1994-09-02 2004-08-11 キヤノン株式会社 カラー印刷装置及びその方法
JPH08212362A (ja) * 1995-02-06 1996-08-20 Hitachi Ltd 文字図形作成装置
JPH09307740A (ja) * 1996-05-17 1997-11-28 Canon Inc 画像処理装置
JP3606006B2 (ja) * 1997-07-10 2005-01-05 富士ゼロックス株式会社 画像形成装置およびグラデーション描画方法
US6201550B1 (en) * 1997-06-30 2001-03-13 Fuji Xerox Co., Ltd. Image forming apparatus and method of generating gradation pattern
JPH11175741A (ja) * 1997-12-12 1999-07-02 Fuji Xerox Co Ltd 文書情報処理装置および文書情報処理方法
US6515763B1 (en) * 1998-07-31 2003-02-04 Adobe Systems Incorporated Vignette recognition and compression
JP3008943B1 (ja) * 1998-08-18 2000-02-14 富士ゼロックス株式会社 画像処理装置および画像処理方法
WO2001094880A1 (fr) * 2000-06-07 2001-12-13 Citizen Watch Co., Ltd. Projecteur de motif de reseau utilisant un reseau de cristaux liquides
JP2002223366A (ja) * 2001-01-26 2002-08-09 Canon Inc 画像処理装置及びその方法、及び画像処理システム
US6870954B1 (en) * 2001-04-04 2005-03-22 Adobe Systems Incorporated Methods apparatus for generating shaped gradient fills
JP2004038728A (ja) * 2002-07-05 2004-02-05 Noritsu Koki Co Ltd 画像処理方法、画像処理プログラム、および、画像処理プログラムを記録した記録媒体
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US20040246510A1 (en) * 2003-06-06 2004-12-09 Jacobsen Dana A. Methods and systems for use of a gradient operator
US20070268304A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Gradient Brush and Stroke
JP4513888B2 (ja) * 2008-03-31 2010-07-28 ブラザー工業株式会社 画像生成装置および印刷装置
JP4513887B2 (ja) * 2008-03-31 2010-07-28 ブラザー工業株式会社 画像生成装置および印刷装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985260B1 (en) * 1999-09-27 2006-01-10 Canon Kabushiki Kaisha Apparatus and method for drawing a gradient fill object
CN1637843A (zh) * 2003-12-24 2005-07-13 奥林巴斯株式会社 渐变图像生成装置和渐变图像生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JP特开2000-138816A 2000.05.16
JP特开平8-116441A 1996.05.07

Also Published As

Publication number Publication date
EP2107526B1 (en) 2012-10-31
US20090244628A1 (en) 2009-10-01
EP2107526A3 (en) 2011-04-27
JP4518172B2 (ja) 2010-08-04
CN101625764A (zh) 2010-01-13
US8040566B2 (en) 2011-10-18
JP2009245335A (ja) 2009-10-22
EP2107526A2 (en) 2009-10-07

Similar Documents

Publication Publication Date Title
CN101625764B (zh) 图像生成装置、图像生成方法及打印装置
CN101551912B (zh) 图像生成装置、图像生成方法及打印装置
CN101593355B (zh) 图像生成装置、图像生成方法及打印装置
JPH0443591B2 (zh)
CN101561934B (zh) 图像生成装置、图像生成方法及打印装置
CN101551913B (zh) 图像生成装置、图像生成方法及打印装置
CN106067932A (zh) 印刷数据生成装置、印刷装置及印刷数据生成方法
JP6733426B2 (ja) 色変換テーブル生成装置、色変換テーブル生成方法、及び、色変換テーブル生成プログラム
US8643898B2 (en) Device, method, system, and computer program product for determining amount of ink to be formed in a region of a medium based on a computed deformation ratio
CN107512000A (zh) 3d打印头组件、3d打印机及其打印方法以及存储介质
CN102180038A (zh) 图像处理方法和图像处理装置
CN114095711A (zh) 图像处理装置、图像处理方法以及记录介质
CN107450873B (zh) 色盘、调色方法、可读存储介质和计算机设备
JP2020205563A (ja) 画像表示制御装置および画像表示制御方法
JP5772097B2 (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