矢量图形光栅化过程中的边界生成方法及系统、 制造方法 技术领域 '
本发明属于印前领域的图形、 图像和文字处理技术, 具体涉及一种矢量 图形光栅化过程中的边界生成方法及系统、 系统的制造方法、 以及一种矢量 图形的剪裁方法。 背景技术
矢量图形是印前领域中大量使用的一种页面描述对象, 由于它具有在坐 标变换时的高度保真性, 因而可以较为精确地还原出描述者的本来意图。 文 字是印前领域中大量使用的另一种页面描述对象, 它的内部描述数据也是基 于矢量图形的, 因此, 矢量图形的光栅化是整个印前输出系统的核心过程。
矢量图形光栅化的主要工作是将用户坐标空间下的矢量描述转换为设备 坐标空间下的点阵信息, 在转换为点阵信息后, 可以再利用后端设备对生成'. 的点阵信息作进一步的处理, 以改善最终输出点阵的质量, 其中图形的边界 信息就十分有助于这一过程的运用。 因此如果能够知道某些点是某矢量图形 的边界点, 那么就可以对这些点进行特殊处理, 从而改善输出质量, 弥补图 形在边界上可能发生的畸变现象。 基于类似的原理, 如果能够知道某些点是 某文字的边界点, 那么也可以对这些点进行特殊处理, 从而提高文字在低分 辨率下的输出质量。
在黑白二值点阵中, 边界是指边界点的集合, 边界点则是指一个黑点, 与其相邻的上下左右四个点中至少有一个点是白点。 按照这样的定义, 现有 技术中生成边界的方法采用的是逐点判断, 但这种方法的不足在于需要占用 较多的存储空间和计算时间, 实现效率很低; 同时, 在实际情形中, 因为直 接修改光栅化核心算法生成边界的风险较高, 所以现有技术中一般都是在矢 量图形已经光栅化之后再进行边界生成, 但此时由于点阵数据量较大, 处理 起来需消耗大量空间和时间上的资源, 效率很低, 总体来看在质量改善上得
到的效果远不足以抵消速度上的下降, 因此很难应用于实际生产。 而目前随 着后端输出设备速度的大幅度提高, 迫切需要产生一种更加快速高效的边界 生成方法。
然而现有技术中还没有能满足这些需要的边界生成技术出现。 发明内容
本发明提供一种矢量图形光栅化过程中的边界生成方法及系统、 制造方 法、 以及一种矢量图形的剪裁方法, 用以解决在矢量图形光栅化过程中高效 生成边界, 进一步的解决在实现矢量图形光栅化的同时高效地生成相应的边 界。
本发明提供的一种矢量图形光栅化过程中的边界生成方法, 技术方案包 括如下步骤:
将矢量图形折线化处理并获取线段数据;
根据所述线段数据获取端点数据;
根据端点数据与端点数据关系获取边界点数据;
根据边界点数据获取边界点点阵数据。
较佳地, 所述端点数据是端点的坐标值。
较佳地, 所述坐标值是设备空间下的坐标值。
较佳地, 根据所述线段数据描述的黑白状态判断是否获取端点数据, 及 根据所述线段数据描述的黑白状态获取端点数据。
较佳地, 当所述线段数据描述的线段为全白时, 不获取端点数据; 当所述线段数据描述的线段为全黑时, 获取线段两端点数据;
当所述线段数据描述的线段为黑白混合时, 获取黑段端点数据。
较佳地, 所述根据端点数据与端点数据关系通过求交、 并、 补集获取边 界点数据。
较佳地, 所述获取边界点数据包括如下步骤:
以当前条的宽度为行宽, 以本行黑色端点集合与相邻行白色端点集合求
交集, 将交集内黑色端点作为边界点。
较佳地, 所述获取边界点点阵数据与矢量图形光栅化同步进行。
较佳地, 所述边界点数据是边界点的坐标值。
较佳地, 所述折线化处理是将需要光栅化的矢量图形进行折线化, 分解 成折线段矢量组, 对折线段矢量进行扫描线求交运算求出线段数据。
较佳地, 进一步包括如下步骤:
将所述边界点点阵剪裁后放入最终页面点阵。
本发明还提供了一种矢量图形光栅化过程中的边界生成系统, 技术方案 包括用于将矢量图形折线化处理并获取线段数据的线段获取模块, 还包括: 端点获取模块, 用于根据所述线段数据获取端点数据;
边界点获取模块, 用于根据端点数据与端点数据关系获取边界点数据; 点阵获取模块, 用于根据边界点数据获取边界点点阵数据。
较佳地, 所述端点获取模块进一步用于根据所述线段数据描述的黑白状 态判断是否获取端点数据, 及根据所述线段数据描述的黑白状态获取端点数 据。
较佳地, 所述端点获取模块进一步用于当所述线段数据描述的线段为全 白时, 不获取端点数据; 当所述线段数据描述的线段为全黑时, 获取线段两 端点数据; 当所述线段数据描述的线段为黑白混合时, 获取黑段端点数据。
较佳地, 所述边界点获取模块进一步用于当前条的宽度为行宽, 以本行 黑色端点集合与相邻行白色端点集合求交集, 将交集内黑色端点作为边界点。
本发明还提供了一种矢量图形光栅化过程中边界生成系统的制造方法, 包括:
设置用于将矢量图形折线化处理并获取线段数据的线段获取模块; 设置与所述线段获取模块相连, 用于根据所述线段数据获取端点数据的 端点获取模块;
设置与所述端点获取模块相连, 用于根据端点数据与端点数据关系获取 边界点数据的边界点获取模块;
设置与所述边界点获取模块相连, 用于根据边界点数据获取边界点点阵 数据的点阵获 莫块。
本发明还提供了一种矢量图形的剪裁方法, 技术方案包括如下步骤: 获取当前剪裁框的边界点阵;
将当前剪裁框的边界点阵与当前图形的边界点阵求并集, 得到当前图形 外框边界点阵;
将当前图形外框边界点阵与当前图形本身点阵求交集。
本发明有益效果如下:
由于在本发明中所采用的求交集、 求并集和求补集等是最基本的集合运 算, 其算法实现非常简洁高效; 进一步的由于充分利用了相邻行黑白段点阵 数据的关联性来生成边界是建立在点阵数据上, 使得边界点阵数据的生成可 以与图形本身点阵数据的生成同步进行; 本发明还可以利用行间数据的内在 重复½作进一步的优化, 以减少计算量, 提高并行度。 因此采用本发明可以 与多种扫描线填充算法相结合, 在矢量图形光栅化的过程中同步而高效地得 到边界点阵信息, 从而能够更为精确地改善与控制输出点阵的盾量。 附图说明
图 1为实施例中所述边界生成方法实施流程示意图;
图 2为实施例中所述一边界生成方法的具体实施流程示意图;
图 3为实施例中所述一剪裁图形边界生成方法实施流程示意图; 图 4为实施例中所述剪裁与图形边界点阵之间的关系示意图;
图 5为实施例中所述矢量图形光栅化过程中的边界生成系统结构示意图; 图 6为实施例中所述一幅矢量图形光栅化后本身点阵效果示意图; 图 7为实施例中所述使用本发明输出边界点阵的效果示意图;
图 8为实施例中所述矢量图形光栅化过程中边界生成系统的制造方法实 施流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
本发明构思在于, 当对矢量图形进行光栅化时, 可以得到点阵数据; 此 时, 再利用矢量图形光栅化时进行的折线化处理, 可以得到一系列的线段, 本发明利用线段填充后以黑白两色所表现出来的状态, 首先得到端点值, 进 而利用边界点之间相邻关系的规律, 采用简单的求交集与求并集的技术手段 便可得出作为边界点的端点, 而求出的端点集合必然为边界点集合。 本发明 的贡献还在于, 在现有技术中对矢量图形进行光栅化获取点阵的时候, 用同 样的点阵数据利用简洁的求交并运算同时获得边界点集合, 也就是本发明并 不影响主程序的运行情况下利用主程序流程的处理结果同时得到另一处理结 果, 从而不但可以满足了快速高效生成边界的要求, 还可以满足在点阵生成 的同时进行边界生成, 显然本发明中不同步进行也仍然是可行的, 但是实现 效率就比较低。
下面结合本发明的具体实施例以进一步阐明本发明构思。
图 1为边界生成方法实施流程示意图, 如图所示, 包括如下步骤: ' 步骤 101、 将矢量图形折线化处理获取线段数据。
将矢量图形进行折线化, 分解成一系列折线段矢量组, 对每一个位于填 充区域内的折线段矢量进行扫描线求交运算, 将结果记录于线段描述数据内, 在这一过程中, 视矢量图形的大小确定需要分成连续区域的条数;
步骤 102、 根据所述线段数据获取端点数据。
端点数据可以是端点的坐标值, 特别地, 可以是设备空间下的坐标值, 实施中考虑运算的具体实施环境以及需要等等因素, 设定以 "条" 来进行实 施, 在条中包括若干线段, 显然, 一个需要处理的矢量图形是由若干条构成 的。 这样以条为单位结合线段的黑白状态对每一条作如下的处理:
i)取出当前条内的线段数据;
(2)若当前条内没有任何线段, 该条填充后将得到全黑或全白的点阵, 对
于全白的情况, 不产生任何边界信息, 对于全黑的情况, 将黑端点数据记录;
(3)若当前条内存在线段, 则依次对这些线段进行处理: 根据线段描述数 据计算出黑白段信息, 当线段数据描述的线段为黑白混合时, 将黑段端点数 据记录, 黑白混合的情况是指即既不是全黑又不是全白, 而是部分数据为黑 点, 部分数据为白点的情况。
步骤 103、 根据记录的端点数据与端点数据关系获取边界点数据。
实施中, 引进 "行" 的单位, 以当前条的宽度为行宽, 每一行包括了若 干黑白端点。
从边界点定义可以知道, 作为边界点的端点可以通过相邻关系得出。 也 就是一个黑端点是上边界点当且仅当其上面相邻点是白端点时, 该点是边界 点, 由此可以将一行黑端点集合与上一行白端点集合求交集就可以得到该行 上边界点的集合, 同理可知, 将一行黑端点集合与下一行白端点集合求交集 就可以得到该行下边界点的集合。 由于黑端点集合与白端点集合互为补集, 因此白端点集合可以通过对黑端点集合求补集得到。 而一行的左边界点和右 边界点的集合已经由黑白段坐标描述的方式自动地呈现, 不用再作运算。 于 是, 一行边界点集合就可以通过由上述上边界点集合、 下边界点集合、 左边 界点集合与右边界点集合求并集得到。 对每一行按此步 操作则得到条内的 边界点。 实施中是以按行上下顺序进行处理为例的, 显然也可以按左右顺序 来处理得到同样结果。
步骤 104、 根据边界点数据获取边界点点阵数据。
对每条数据依次重复上述计算, 即可得到整个图形的边界点阵, 显然实 施中获取的边界点数据是指边界点的坐标值。
下面再举一边界生成的具体实施例以进一步描述本发明的实施, 图 2为 一边界生成方法的具体实施流程示意图, 如图所示, 可按以下步骤实施: 步骤 201、 矢量图形折线化;
步驟 202、 对折线段矢量进行扫描线求交运算;
步驟 203、 对矢量进行分条;
步骤 204、 取出当前条内的线段数据;
步骤 205、 生成没有线段数据的端点;
步骤 206、 生成存在线段数据的端点;
步驟 207、 逐行计算边界坐标信息;
步驟 208、 判断是否得到图形全部边界点阵信息;
步驟 209、 得到图形的全部边界点阵信息。
本发明还提供了一种矢量图形的剪裁方法, "剪裁" 是最后将光栅化得到 的点阵放入当前页面时需要处理的一项操作, 是得到最终页面点阵的一个重 要步骤, 光栅化得到的点阵都需经过 "剪裁" 的处理才能放入页面, "剪裁,, 区域也是通过矢量图形来描述的, 最终放入当前页面的点阵是矢量图形的本 身点阵与 "剪裁" 区域点阵进行求交之后的结果。 下面对矢量图形的剪裁方 法具体实施进行说明, 同时结合前述实施方式得到的边界点阵来说明如何将 "剪裁" 后的边界点阵放入最终页面点阵。 图 3 为剪裁图形边界生成方法实 施流程示意图, 其中图形是指一个具体图形实例, 该剪裁图形由 "条" 构成。 即用以条为单位, 将一剪裁图形的边界点阵放入当前页面的实施方式来进一 步说明, 如图所示, 实施包括如下步骤:
步驟 301、 计算当前条剪裁框的边界点阵。
对剪裁矢量緩冲区中的矢量依次光栅化, 依照图 1 的实施方法得到矢量 本身点阵的同时得到其边界点阵。 对当前条中全部剪裁矢量本身点阵求交集, 对当前条中全部剪裁矢量边界点阵求并集, 再对两者结果求交集, 即得到当 前条剪裁框的边界点阵。
步驟 302、 将当前条剪裁框的边界点阵与当前条图形的边界点阵求并集, 得到当前条图形外框边界点阵。
步骤 303、将当前条图形外框边界点阵与当前条图形本身点阵求交集, 即 得到剪裁后的当前条图形边界点阵 , 将其放入当前页面。
图 4为剪裁与图形边界点阵之间的关系示意图, 如图所示, 竖紋矩形区 域的边框 401为剪裁框边界点阵; 横紋矩形区域的边框 402为图形边界点阵;
横紋矩形区域 403 为图形本身点阵; 竖紋与横紋交错的矩形区域的边框 404 为剪裁后的图形边界点阵。
基于同一发明构思, 本发明还提供了一种矢量图形光栅化过程中的边界 生成系统, 下面结合附图对本系统的具体实施方式进行说明。
图 5为矢量图形光栅化过程中的边界生成系统结构示意图, 如图所示, 系统中包括线段获取模块 501、 端点获取模块 502、 边界点获耳 莫块 503、 点 阵获取模块 504, 端点获取模块 502与线段获取模块 501相连, 边界点获取模 块 503与端点获取模块 502相连, 点阵获取模块 504与边界点获取模块 503 相连, 其中:
线段获取模块将矢量图形光栅化时折线化处理获取线段数据; 端点获取 模块根据线段数据获取端点数据; 边界点获取模块根据端点数据与端点数据 关系获取边界点数据; 点阵获 ί4莫块根据边界点数据获取边界点点阵数据。
端点获取模块可以根据所述线段数据的黑白状态获取端点数据。 端点获 取模块在当线段数据描述的线段为全白时, 不获取端点数据; 当线段数据描 述的线段为全黑时, 获取线段两端点数据; 当线段数据描述的线段为黑白混 合时, 获取黑段端点数据。
边界点获取模块根据端点数据与端点数据相邻关系通过求交并集获取边 界点数据。 边界点获取模块可以以端点宽为行宽, 以本行黑色端点集合与相 邻行白色端点集合求交集, 将交集内黑色端点作为边界点。
本发明提出的边界生成方法及系统可以在实现矢量图形光栅化的同时高 效地生成相应的边界点阵信息, 由此能够更加精确地改善与控制输出点阵的 质量。 图 6是一幅矢量图形光栅化后本身点阵效果示意图; 图 7是使用本发 明输出边界点阵的效果示意图。 从两图可以直观的看出采用本发明所产生的 突出效果。
基于同一发明构思, 本发明还提供了一种矢量图形光栅化过程中的边界 生成系统的制造方法, 下面结合附图对本制造方法的具体实施方式进行说明。
图 8为矢量图形光栅化过程中边界生成系统的制造方法实施流程示意图,
如图所示, 包括如下步骤:
步骤 801、设置用于将矢量图形光栅化时折线化处理并获取线段数据的线 段获取模块;
步骤 802、设置与线段获取模块相连, 用于根据线段数据获取端点数据的 端点获 ^莫块;
步骤 803、设置与端点获取模块相连, 用于根据端点数据与端点数据关系 获取边界点数据的边界点获取模块;
步據 804、设置与边界点获取模块相连, 用于根据边界点数据获取边界点 点阵数据的点阵获取模块。
本发明的精神在于, 借用矢量图形光栅化获取的点阵数据, 运用边界点 之间的规律, 采用简洁的数学处理来生成边界。 显然, 本领域的技术人员可 以对本发明进行各种改动和变型而不脱离本发明的精神和范围。 这样, 倘若 本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内, 则 本发明也意图包含这些改动和变型在内。