首页> 中国专利> 一种获取、编辑自定义图形的方法和字幕图形制作系统

一种获取、编辑自定义图形的方法和字幕图形制作系统

摘要

本发明提供了一种获取、编辑自定义图形的方法和一种字幕图形制作系统,其中的方法具体包括:制作步骤:依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点和控制点描述,并且该插件继承图形绘制主程序协议层的接口;加载步骤:接收用户选择的自定义图形,从插件获取相应信息;第一显示步骤:根据所获取信息,对所述自定义图形进行绘制显示;改变步骤:接收用户对某个控制点的移动,将所述改变信息通过所述接口传递给插件;计算步骤:在接收到所述改变信息后,插件重新计算关键点信息,并通过所述接口传递给图形绘制主程序;第二显示步骤:根据插件返回的关键点信息,进行显示。本发明用以提高图形绘制的效率。

著录项

  • 公开/公告号CN102074030A

    专利类型发明专利

  • 公开/公告日2011-05-25

    原文格式PDF

  • 申请/专利权人 新奥特(北京)视频技术有限公司;

    申请/专利号CN200910238542.1

  • 发明设计人 郑培枫;刘衡娜;廖健;沈季;

    申请日2009-11-25

  • 分类号G06T11/60;

  • 代理机构北京润泽恒知识产权代理有限公司;

  • 代理人苏培华

  • 地址 100080 北京市海淀区西草场1号硅谷电脑城15层1501-1506室

  • 入库时间 2023-12-18 02:26:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-12

    未缴年费专利权终止 IPC(主分类):G06T11/60 授权公告日:20160309 终止日期:20161125 申请日:20091125

    专利权的终止

  • 2016-03-09

    授权

    授权

  • 2012-12-19

    实质审查的生效 IPC(主分类):G06T11/60 申请日:20091125

    实质审查的生效

  • 2011-05-25

    公开

    公开

说明书

技术领域

本发明涉及计算机图形学技术领域,特别是涉及一种获取、编辑自定义图形的方法和一种字幕图形制作系统。

背景技术

计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。计算机图形学技术广泛应用于图文制作、平面设计、影视后期制作等领域。

例如,在制作字幕文件时,现有的图形制作系统一般会提供一个图形元素库,用户可以从中调用所需的图形元素进行图形的绘制。但是,库中的图形元素一般较有限,例如,只提供基本的线条、矩形、椭圆、弧形等图形元素,这样,在用户需要绘制自由曲线时,所述图形元素库根本不能满足需求;或者,在对平行四边形、菱形、梯形、三角形、五角形等复杂图形有需求时,用户不得不逐线绘制得到所需图形,严重影响图形绘制的效率。

因此,需要本领域技术人员迫切解决的一个技术问题就是:如何能够绘制出所需图形,并且提高图形绘制的效率。

发明内容

本发明所要解决的技术问题是提供一种获取、编辑自定义图形的方法和一种字幕图形制作系统,用以绘制出满足用户需求的图形,并提高图形绘制的效率。

为了解决上述问题,本发明公开了一种获取、编辑自定义图形的方法,包括:

制作步骤:依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点描述和控制点描述,并且该插件继承图形绘制主程序协议层的接口;

加载步骤:接收用户选择的自定义图形,从插件获取相应信息;

第一显示步骤:根据所获取信息,对所述自定义图形进行绘制显示;

改变步骤:接收用户对该自定义图形某个控制点的移动,将所述改变信息通过所述接口传递给插件;

计算步骤:在接收到所述改变信息后,插件重新计算关键点信息,并通过所述接口传递给图形绘制主程序;

第二显示步骤:根据插件返回的改变后的关键点信息,对该自定义图形进行显示。

优选的,所述自定义图形为规则图形或不规则图形;以及,所述自定义图形为封闭图形或开放图形。

优选的,所述第一显示步骤包括:

首先,根据所获取信息,显示所述自定义图形;

点击该自定义图形时,再显示各个控制点。

优选的,所述关键点描述包括多个关键点坐标的描述,以及,所述控制点描述包括一个或多个控制点坐标的描述;

所述第一显示步骤包括:

将当前光标位置作为某个关键点坐标,并根据各个关键点坐标和各个控制点坐标,对该自定义图形进行显示。

优选的,所述计算步骤包括:

插件根据所述改变后的控制点坐标,计算得到各个关键点的新坐标,并通过所述接口传递给图形绘制主程序。

本发明还公开了一种字幕图形制作系统,包括:制作模块、加载模块、显示模块、改变模块和计算模块;其中,

所述制作模块,用于依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点描述和控制点描述,并且该插件继承图形绘制主程序协议层的接口;

所述加载模块,接收用户选择的自定义图形,从插件获取相应信息;

所述显示模块,用于根据所获取信息,或者,根据所述计算模块返回的改变后的关键点信息,对所述自定义图形进行绘制显示;

所述改变模块,用于接收用户对该自定义图形某个控制点的移动,将所述改变信息通过所述接口传递给插件;

所述计算模块,用于在接收到所述改变信息后,重新计算关键点信息,并通过所述接口传递给图形绘制主程序。

优选的,所述显示模块包括:

自定义图形显示单元,用于根据所获取信息,显示所述自定义图形;

控制点显示单元,用于在点击该自定义图形时,再显示各个控制点。

优选的,所述关键点描述包括多个关键点坐标的描述,以及,所述控制点描述包括一个或多个控制点坐标的描述;

所述显示模块,用于将当前光标位置作为某个关键点坐标,并根据各个关键点坐标和各个控制点坐标,对该自定义图形进行显示。

所述计算模块,用于根据所述改变后的控制点坐标,计算得到各个关键点的新坐标,并通过所述接口传递给图形绘制主程序。

与现有技术相比,本发明具有以下优点:

本发明依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点描述和控制点描述,并且该插件继承图形绘制主程序协议层的接口;因此,相对于现有技术,用户根本无法绘制一些图形绘制主程序不支持的图形,或者,不得不逐线绘制得到复杂图形,本发明在图形绘制主程序调用制作完成的插件,即可绘制显示出满足用户需求的自定义图形,从而能够提高图形绘制的效率;

此外,本发明可以接收用户对该自定义图形某个控制点的移动,将所述改变信息通过所述接口传递给插件,由插件重新计算关键点信息,并根据插件返回的改变后的关键点信息,对该自定义图形进行重新显示,因而,还能够满足用户对该自定义图形不断更新的编辑需求。

附图说明

图1是本发明一种获取、编辑自定义图形的方法实施例的流程图;

图2本发明一种多边形的示意图;

图3本发明一种贝塞尔曲线的示意图;

图4是本发明一种矩形控制点的示意图;

图5是本发明一种字幕图形制作系统实施例的结构图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明的核心构思之一在于,采用插件技术对图形绘制主程序的绘制功能进行扩展,具体而言,在用户对某种图形有需求时,设计图形绘制主程序的接口,将该接口公开,并根据该接口制作与该图形相应的插件;插件制作完成后,在图形绘制主程序调用该插件即可增加该程序的绘制功能。

参照图1,示出了本发明一种获取、编辑自定义图形的方法实施例的流程图,具体可以包括:

制作步骤101、依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点描述和控制点描述,并且该插件继承图形绘制主程序协议层的接口;

在具体实现中,可由图形绘制主程序协议层开放一些编程接口,以方便该程序与插件间进行数据通信。例如,可以将图形绘制主程序分模块、分层,并分别封装DLL(动态链接库,Dynamic Link Library)文件,然后,将DLL文件的头文件提供给相应的插件即可。

这样,在图形绘制主程序启动的时候,可以在预设的目录中查找符合一定规范的DLL文件;查找完成后,图形绘制主程序使用约定好的接口调用DLL模块。

相应地,该插件的生命周期如下所示:

1.图形绘制主程序初始化;

2.在初始化功能函数中在指定的目录中查找插件文件,例如,plug-in目录;

3.对每个查找到的文件,图形绘制主程序利用WindowApI函数AfxLoadLibrary()导入到宿主内存后,按规定的加载接口函数,例如load()函数进行调用校验,看是否是符合图形插件规则的文件;

4.load()调用之后,图形绘制主程序保存每个模块的名字,并对每个模块创建引用,这样,模块中的函数就可以在随后被调用;

5.在图形绘制主程序运行的过程中,当用户选择菜单项时,相应的所定义的功能就会被执行;

6.关闭图形绘制主程序时,调用卸载unload()函数,用来释放load()函数中所申请的资源。

在实际中,所述自定义图形可以为规则图形,如矩形、圆形、五角形等;也可以为不规则图形,如任意多边形、自由曲线等;既可以为封闭图形,也可以为开放图形,本发明对此不加以限制。

参考图2,示出了本发明一种多边形示例,其中,各顶点为各自多边形的关键点,2A为图2(A)三角形的控制点,2B为图2(B)矩形的控制点,2C为图2(C)六边形的控制点;各控制点的位置决定相应多边形的大小和形状。

在本发明的一种优选实施例中,可以采用贝塞尔曲线描述所述自定义图形。

一、贝塞尔图形介绍

贝塞尔(Bezier)曲线是计算机图形学中一种重要的多项式参数曲线,平面中的任意N(N≥2)个点都可以构成一个Bezier曲线,这N个点称为Bezier曲线的节点,所述N个节点组成的多边形称为Bezier曲线的特征多边形。N次Bezier曲线的参数方程表示如下:

Q(t)=Σi=0nPiBi,n(t)

其中,Pi表示特征多边形的节点,Bi,n(t)是伯恩斯坦多项式,称为基地函数,可表示如下:

Bi,n(t)=n!i!(n-i)!ti(1-t)n-i

因此,n=1时,Q(t)=(1-t)P0+tP1,也即一次Bezier曲线是连接起点P0和终点P1的直线段;

n=2时,Q(t)=(1-t)2P0+2t(1-t)P1+t2P2=(P2-2P1+P0)t2+2(P1-P0)t+P0,如令a=(P2-2P1+P0),b=2(P1-P0),c=P0,则二次Bezier曲线是抛物线;

n=3时,有4个节点,则

Q(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3

=B0,3(t)P0+B1,3(t)P1+B2,3(t)P2+B3,3(t)P3

其中,B0,3(t)=(1-t)3B1,3(t)=3t(1-t)2B2,3(t)=3t2(1-t)B3,3(t)=t3,P0、P1、P2、P3四个点在平面或在三维空间定义了三次Bezier曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2,这两个点只提供方向信息;并且,P0和P1之间的间距,决定了曲线在转而趋近P3前,走向P2方向的长度。

二、贝塞尔曲线的性质

(1)端点及端点切线

Bezier曲线在始点和终点处的切线方向与特征多边形的第一条边及最后一条边的走向一致。

(2)对称性

假如保持n次Bezier曲线诸节点的位置不变,而把次序颠倒,则曲线仍不变,只是走向相反。

(3)凸包性

因为当t在[0,1]变化时,伯恩斯坦多项式之和均为1,且有每项均大于0,因而伯恩斯坦多项式构成了Bezier曲线的权函数,Q(t)是特征多边形各节点的加权平均,权因子均为正数,在几何图形上,这意味着曲线各节点均应落在特征多边形各节点构成的凸包内。凸包指包含所有节点的最小凸多边形。

(4)几何不变性

曲线的形状仅与特征多边形的各节点相对位置有关,而与坐标系的选择无关。

三、贝塞尔曲线示例

参考图3,示出了一种贝塞尔曲线示例,图中的曲线为由节点连接而成的线段组成的直线或曲线,其中,6个控制点301决定了5条控制线302,并且,每条控制线302和每个控制点301的位置决定曲线段的大小和形状,移动这些因素都将改变曲线的形状。

加载步骤102、接收用户选择的自定义图形,从插件获取相应信息;

在加载所选择的自定义图形对应的插件时,可以指定加载路径,例如,将该自定义图形直接加载到当前程序的图形元素库中,供用户调用;为使该自定义图形与已有的图形元素区别开来,可对其进行特殊命名。

第一显示步骤103、根据所获取信息,对所述自定义图形进行绘制显示;

在制作插件时,可以采用坐标描述所述关键点或者控制点,例如,所述关键点描述可以包括多个关键点坐标的描述,以及,所述控制点描述可以包括一个或多个控制点坐标的描述。对于三角形、矩形等多边形,可以通过各顶点坐标,计算得到相应的控制点坐标;对于Bezier曲线的特征多边形,可依据各节点坐标及N次Bezier曲线的参数方程,计算得到相应的控制点坐标。

此时,所述第一显示步骤可以为,将当前光标位置作为某个关键点坐标,并根据各个关键点坐标和各个控制点坐标,对该自定义图形进行显示。

在具体实现中,所述第一显示步骤可以包括以下子步骤:

子步骤A1、根据所获取信息,显示所述自定义图形;

子步骤A2、点击该自定义图形时,再显示各个控制点。

即用户在选中该自定义图形时,才会显示各个控制点。

改变步骤104、接收用户对该自定义图形某个控制点的移动,将所述改变信息通过所述接口传递给插件;

在实际中,用户往往会有这样的需求,即希望对当前显示的自定义图形进行编辑操作,以改变该图形的大小和形状。由于制作的插件中描述的各控制点的位置决定了相应图形的大小和形状,因此,用户可以通过移动控制点,来进行相应的编辑操作。

参考图4,示出了一种矩形控制点示例,其中,4A1、4A2、4A3、4A4分别代表上、下、左、右四个边界的拉伸控制点,4B1、4B2、4B3、4B4分别代表左上角、左下角、右下角、右上角的拉伸控制点,4C代表旋转控制点。这样,用户可通过移动4A1-4A4中任意一个控制点来实现四个边界的拉伸,通过移动控制点4B1-4B4中任意一个控制点以对四个角进行拉伸操作,或者,以默认的矩形中心4D为旋转中心,通过移动旋转控制点4C来改变旋转角度,以实现将该矩形进行旋转的目的。

针对上述操作,需要控制窗口对插件对应的自定义图形进行修改、编辑的操作,本发明采用如下方案:

由宿主窗口处理所有操作消息,即Windows消息由宿主窗口进行接收和分发,如鼠标、键盘的输入,由宿主窗口根据需要传递给插件,插件所提供的图形,也由宿主窗口接收并分析数据后进行显示。

计算步骤105、在接收到所述改变信息后,插件重新计算关键点信息,并通过所述接口传递给图形绘制主程序;

在实际中,所述计算操作可以为,插件根据所述改变后的控制点坐标,计算得到各个关键点的新坐标。

例如,用户移动了拉伸控制点4A1,由于改变的只是左上关键点和右上关键点的纵坐标,且左上关键点和右上关键点的纵坐标与拉伸控制点4A1的纵坐标相同,因此,各个关键点的新坐标可以很容易得到;又如,用户移动了拉伸控制点4B1,由于改变的只是左上关键点、左下关键点以及右上关键点的纵坐标,且左上关键点和左下关键点的横坐标与拉伸控制点4B1的横坐标相同,以及,左上关键点和右上关键点的纵坐标与拉伸控制点4B1的纵坐标相同,故也可得到各个关键点的新坐标;再如,用户移动了选择控制点4C,无论矩形如何旋转,矩形的中心坐标是不会发生改变的,并且,旋转前后的关键点到中心的距离是不变的,因此,可以首先根据中心坐标及改变前后的控制点坐标计算出该矩形的旋转角度,然后,依据所述旋转角度及改变前的关键点坐标,求解出新坐标。

对于Bezier曲线的特征多边形,其各个关键点的新坐标获取过程与上述过程类似,在此不作赘述。

第二显示步骤106、根据插件返回的改变后的关键点信息,对该自定义图形进行显示。

因此,相对于现有技术,用户根本无法绘制一些图形绘制主程序不支持的图形,或者,不得不逐线绘制得到复杂图形,本发明在用户对某图形有需求时,可以制作与该图形相应的插件,然后,在图形绘制主程序调用制作完成的插件,即可绘制出满足用户需求的图形,从而能够提高图形绘制的效率。

参照图5,示出了本发明一种字幕图形制作系统实施例的结构图,具体可以包括:制作模块501、加载模块502、显示模块503、改变模块504和计算模块505;其中,

所述制作模块501,用于依据当前用户所需的自定义图形,制作插件;所述插件用于提供所需自定义图形的关键点描述和控制点描述,并且该插件继承图形绘制主程序协议层的接口;

所述加载模块502,接收用户选择的自定义图形,从插件获取相应信息;

所述显示模块503,用于根据所获取信息,或者,根据所述计算模块返回的改变后的关键点信息,对所述自定义图形进行绘制显示;

所述改变模块504,用于接收用户对该自定义图形某个控制点的移动,将所述改变信息通过所述接口传递给插件;

所述计算模块505,用于在接收到所述改变信息后,重新计算关键点信息,并通过所述接口传递给图形绘制主程序。

在具体实现中,所述显示模块503可以包括:

自定义图形显示单元,用于根据所获取信息,显示所述自定义图形;

控制点显示单元,用于在点击该自定义图形时,再显示各个控制点。

本发明可以采用坐标描述所述关键点和控制点,例如,所述关键点描述可以包括多个关键点坐标的描述,以及,所述控制点描述可以包括一个或多个控制点坐标的描述;

此时,所述显示模块的功能可以为,将当前光标位置作为某个关键点坐标,并根据各个关键点坐标和各个控制点坐标,对该自定义图形进行显示。

所述计算模块的功能可以为,根据所述改变后的控制点坐标,计算得到各个关键点的新坐标,并通过所述接口传递给图形绘制主程序。

对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明可以应用于图文制作、平面设计、影视后期制作等领域,用以增加现有图形制作系统的图形绘制功能。

以上对本发明所提供的一种获取、编辑自定义图形的方法和一种字幕图形制作系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号