truetype字库的防盗信息嵌入方法及使用方法
技术领域
1.本发明涉及truetype字库的版权保护技术,尤其涉及一种truetype字库的防盗信息嵌入方法、一种truetype字库的使用方法、两种计算机设备,以及两种计算机可读存储介质。
背景技术:2.truetype字库是由美国苹果公司和微软公司共同开发的一种曲线轮廓字体的数学字形描述技术。该字库采用几何学中二次贝塞尔曲线及直线来描述字体外形轮廓,含有字形构造、颜色填充、数字描述函数、流程条件控制、栅格处理控制,以及附加提示控制等指令,可用于打印与屏幕显示。由于truetype字库采用指令对字形进行描述,与分辨率无关,因此可按照目标分辨率输出。由于二次函数导函数的连续性,所以无论放大或缩小,truetype字库的字符总是光滑的,不会有锯齿出现。
3.请参考图1,图1示出了一段基于二次贝塞尔曲线的truetype字体的轮廓曲线的示意图。
4.如图1所示,truetype字体的字形轮廓可以由一串有序控制点p组成。控制点可以包括位于轮廓曲线上的内部起点p0和尾部连接点p2,以及位于轮廓曲线外的线外控制点p1。truetype字体的实际轮廓曲线可以由这些控制点p通过调节二次贝塞尔曲线来决定。
5.现有的字库版权保护技术主要包括:
6.1.针对图像的数字水印与信息隐藏技术,主要针对彩色图像,基于彩色图像存在大量冗余数据与特征丰富而提出。由于二值的字体库冗余数据较少,因此普通数字水印与信息隐藏技术不适用于字体库。
7.2.针对字体库的技术,主要通过对点阵字体库中二值像素值进行修改来嵌入隐秘信息与水印等信息。由于微软与苹果公司的操作系统已经改成默认使用truetype字体库,如果将原来针对像素值的修改方法直接导入到现有truetype字体库文件,将出现字体线条断裂等明显影响视觉表现的问题。
8.3.针对应用程序文档中字体的替换来嵌入水印,在应用程序调用安装到os的字体库时进行变化。因此无法防止盗用者直接复制已安装的字体库文件进行盗用。
9.4.通过针对文档中统计有变更与无变更的字体分布来提取文档水印,因此同样无法防止盗用者直接复制已安装的字体库文件进行盗用。
10.因此,为了克服现有技术存在的上述缺陷,本领域亟需一种truetype字库的版权保护技术,用于向字体内容中嵌入隐秘水印来发布保持视觉效果的嵌入后字体文件,同时实现防复制盗用与盗版追踪功能。
技术实现要素:11.以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非
试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
12.为了克服现有技术存在的上述缺陷,本发明提供了一种truetype字库的防盗信息嵌入方法、一种truetype字库的使用方法、两种计算机设备,以及两种计算机可读存储介质,用于向字体内容中嵌入隐秘水印来发布保持视觉效果的嵌入后字体文件,同时实现防复制盗用与盗版追踪功能。
13.在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述truetype字库中的每个字由若干段的二次贝塞尔曲线构成,每个二次贝塞尔曲线包括一个线外控制点。本发明提供的上述truetype字库的防盗信息嵌入方法,包括:基于授权用户的授权信息生成防盗信息;以及基于所述防盗信息的二进制信息流依序修改所述truetype字库中至少部分的线外控制点的坐标值,其中所有修改后的线外控制点的坐标值包含了所述防盗信息。
14.优选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述基于所述防盗信息的二进制信息流按序修改所述truetype字库中至少部分的线外控制点的坐标值包括:按照所述二进制信息流中的各个比特按序修改所述至少部分的线外控制点中每一个的坐标值以使修改后的坐标值的奇偶性指示所述二进制信息流的相应比特,以完成所述二进制信息的所有比特的嵌入。
15.优选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述按照所述二进制信息中的各个比特按序修改所述至少部分的线外控制点中每一个的坐标值以使修改后的坐标值的奇偶性指示所述二进制信息流的相应比特包括:对于所述二进制信息中的一个比特,若该比特所对应的线外控制点的坐标值的奇偶性与该比特所指示的奇偶性相吻合,则保持该线外控制点的坐标值不变,否则将该线外控制点的坐标值增大或减小1个坐标值单位。
16.可选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述至少部分的线外控制点包括所述truetype字库中按照所述防盗信息的二进制信息流的长度从第一个线外控制点起始依序存储的多个线外控制点。
17.可选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述至少部分的线外控制点包括所述truetype字库中按照所述防盗信息的二进制信息流的长度平均分布的多个线外控制点。
18.可选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述至少部分的线外控制点不包括所在曲线靠近字体边界的线外控制点或所在曲线的曲率接近0的线外控制点。
19.可选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述基于授权用户的授权信息生成防盗信息包括:在所述授权信息之前加上固定长度的信息长度信息以获得所述防盗信息,所述信息长度信息指示所述防盗信息的二进制信息流的长度。所述基于所述防盗信息的二进制信息流依序修改所述truetype字库中至少部分的线外控制点的坐标值包括:基于所述信息长度信息的二进制信息流部分修改所述truetype字库中的固定位置的预设数目的线外控制点的坐标值;以及基于二进制信息流的剩余部分修改所述至少部分的线外控制点中其余部分的线外控制点的坐标值。
20.优选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述基于授
权用户的授权信息生成防盗信息包括:基于所述授权信息生成纠错码信息;以及在所述授权信息的末尾加上所述纠错码信息以获得所述防盗信息。
21.可选地,在本发明提供的上述truetype字库的防盗信息嵌入方法中,所述授权信息是基于所述授权用户的用户信息和授权机器的机器识别信息生成的授权序列号。
22.根据本发明的另一方面,本文还提供了一种truetype字库的使用方法。
23.在本发明提供的上述truetype字库的使用方法中,所述truetype字库中的每个字由若干段的二次贝塞尔曲线构成,每个二次贝塞尔曲线包括一个线外控制点。所述使用方法包括:基于所述truetype字库中至少部分的线外控制点的坐标值以提取防盗信息的二进制信息流,所述防盗信息中包含授权用户的授权信息;将所述防盗信息发送至验证服务器以基于所述防盗信息中的授权信息验证所述truetype字库的当前使用是否合法;以及响应于验证通过,接收对应授权用户的坐标修正数据以基于所述坐标修正数据恢复所述truetype字库中所述至少部分的线外控制点的坐标值以获得原始的truetype字库。
24.优选地,在本发明提供的上述truetype字库的使用方法中,所述提取防盗信息的二进制信息流包括:按序基于所述至少部分的线外控制点中每一个的坐标值的奇偶性获得所述二进制信息流中的相应比特,以获得所述二进制信息流的所有比特值。
25.可选地,在本发明提供的上述truetype字库的使用方法中,所述至少部分的线外控制点包括所述truetype字库中按照所述防盗信息的二进制信息流的长度从第一个线外控制点起始依序存储的多个线外控制点。
26.可选地,在本发明提供的上述truetype字库的使用方法中,所述至少部分的线外控制点包括所述truetype字库中按照所述防盗信息的二进制信息流的长度平均分布的多个线外控制点。
27.可选地,在本发明提供的上述truetype字库的使用方法中,所述至少部分的线外控制点不包括所在曲线靠近字体边界的线外控制点或所在曲线的曲率接近0的线外控制点。
28.可选地,在本发明提供的上述truetype字库的使用方法中,所述防盗信息还包括位于所述授权信息之前的固定长度的信息长度信息,所述信息长度信息指示所述防盗信息的二进制信息流的长度。所述提取防盗信息的二进制信息流包括:基于所述truetype字库中的固定位置的预设数目的线外控制点的坐标值以提取所述信息长度信息的二进制信息流部分;以及基于所述至少部分的线外控制点中其余部分的线外控制点的坐标值以提取所述防盗信息的二进制信息流的剩余部分。
29.优选地,在本发明提供的上述truetype字库的使用方法中,所述防盗信息还包括位于所述授权信息的末尾的纠错码信息。
30.可选地,在本发明提供的上述truetype字库的使用方法中,所述授权信息是基于所述授权用户的用户信息和授权机器的机器识别信息生成的授权序列号。所述truetype字库的使用方法还包括:将当前使用所述truetype字库的用户的用户信息和机器的机器识别信息发送至所述验证服务器以执行所述授权信息验证。
31.可选地,在本发明提供的上述truetype字库的使用方法中,所述坐标修正数据包括所述至少部分的线外控制点的坐标值的修改记录。所述恢复所述truetype字库中所述至少部分的线外控制点的坐标值以获得原始的truetype字库包括:基于所述修改记录修正所
述至少部分的线外控制点的坐标值以获得原始的truetype字库。
32.根据本发明的另一方面,本文还提供了一种计算机设备。
33.本发明提供的上述计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令。所述处理器执行所述计算机可执行指令时,可以实现上述任意一种truetype字库的防盗信息嵌入方法的步骤。
34.根据本发明的另一方面,本文还提供了一种计算机设备。
35.本发明提供的上述计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可执行指令。所述处理器执行所述计算机可执行指令时,可以实现上述任意一种truetype字库的使用方法的步骤。
36.根据本发明的另一方面,本文还提供了一种计算机可读存储介质。
37.本发明提供的上述计算机可读存储介质,其上存储有计算机可执行指令。所述计算机可执行指令被处理器执行时,可以实现上述任意一种truetype字库的防盗信息嵌入方法的步骤。
38.根据本发明的另一方面,本文还提供了一种计算机可读存储介质。
39.本发明提供的上述计算机可读存储介质,其上存储有计算机可执行指令。所述计算机可执行指令被处理器执行时,可以实现上述任意一种truetype字库的使用方法的步骤。
附图说明
40.在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
41.图1示出了一段基于二次贝塞尔曲线的truetype字体的轮廓曲线的示意图。
42.图2示出了根据本发明的一方面提供的truetype字库的防盗信息嵌入方法的流程示意图。
43.图3示出了根据本发明的一个实施例提供的嵌入防盗信息的示意图。
44.图4示出了根据本发明的另一方面提供的truetype字库的使用方法的流程示意图。
45.图5示出了根据本发明的另一方面提供的truetype字库的防盗信息嵌入设备的结构示意图。
46.图6示出了根据本发明的另一方面提供的truetype字库的使用设备的结构示意图。
47.附图标记
48.p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
控制点;
49.p0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
内部起点;
50.p1、p1
’ꢀꢀꢀꢀꢀꢀ
线外控制点;
51.p2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
尾部连接点;
52.201-202
ꢀꢀꢀꢀꢀꢀꢀ
truetype字库的防盗信息嵌入方法的步骤;
53.401-403
ꢀꢀꢀꢀꢀꢀꢀ
truetype字库的使用方法的步骤;
54.51、61
ꢀꢀꢀꢀꢀꢀꢀꢀ
存储器;
55.52、62
ꢀꢀꢀꢀꢀꢀꢀꢀ
处理器。
具体实施方式
56.以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合优选实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。
57.在以下的说明中所使用的“上”、“下”、“左”、“右”、“顶”、“底”、“水平”、“垂直”应被理解为该段以及相关附图中所绘示的方位。此相对性的用语仅是为了方便说明之用,其并不代表其所叙述的装置需以特定方位来制造或运作,因此不应理解为对本发明的限制。
58.为了克服现有技术存在的上述缺陷,本发明提供了一种truetype字库的防盗信息嵌入方法、一种truetype字库的使用方法、两种计算机设备,以及两种计算机可读存储介质,用于向字体内容中嵌入隐秘水印来发布保持视觉效果的嵌入后字体文件,同时实现防复制盗用与盗版追踪功能。
59.在本发明提供的上述truetype字库的防盗信息嵌入方法中,truetype字库中的每个字都可以由若干段的二次贝塞尔曲线构成。如图1所示,每个二次贝塞尔曲线都可以由一串有序控制点p组成,尤其包括位于轮廓曲线上的内部起点p0和尾部连接点p2,以及位于轮廓曲线外的线外控制点p1。truetype字体的实际轮廓曲线可以由这些控制点p通过调节二次贝塞尔曲线来决定。
60.具体来说,内部起点p0和尾部连接点p2是实际轮廓曲线必须通过的点,线外控制点p1位于实际轮廓曲线之外。实际轮廓曲线上各点p(x(u),y(u))的坐标可以由如下公式决定:
61.x(u)=x0+2*(x1-x0)*u+(x2-2x1+x0)*u^2
62.y(u)=y0+2*(y1-y0)*u+(y2-2y1+y0)*u^2
63.其中,p0(x0,y0)、p1(x1,y1)、p2(x2,y2)分别是p0、p1、p2点的坐标。
64.请结合参考图2,图2示出了根据本发明的一方面提供的truetype字库的防盗信息嵌入方法的流程示意图。
65.如图2所示,在本发明提供的上述truetype字库的防盗信息嵌入方法中,可以包括步骤:
66.201:基于授权用户的授权信息生成防盗信息。
67.在一些实施例中,授权用户可以包括购买了truetype字库使用权的合法用户。授权用户的授权信息可以包括truetype字库的版权方授予该合法用户的身份验证信息,包括但不限于授权序列号。授权用户可以在安装字库程序时使用该授权序列号进行身份认证,以生成可以正常使用的字库文件。在一个优选的实施例中,该授权信息可以是基于授权用户的用户信息和授权机器的机器识别信息生成的授权序列号,用于限制字库安装程序只能在指定的授权机器上进行安装。
68.在一些实施例中,在安装字库程序的过程中,响应于用户输入其授权序列号以进行身份认证,防盗信息嵌入设备可以根据该输入的授权序列号自动生成一条防盗信息。该防盗信息可以指示该授权序列号对应的用户身份,以便字库版权方根据该防盗信息追踪盗用源头以进行追偿。在一些实施例中,该防盗信息嵌入设备可以是具有存储器和处理器的计算机设备,也可以是存储有对应计算机可执行指令的处理模块。
69.如图2所示,在本发明提供的上述truetype字库的防盗信息嵌入方法中,还可以包括步骤:
70.202:基于防盗信息的二进制信息流,依序修改truetype字库中至少部分的线外控制点的坐标值。
71.在一些实施例中,truetype字库中的各字符可以以二次贝塞尔曲线为单位地存储于字库文件中,以供truetype字库的使用设备进行调用。在一些实施例中,该truetype字库的使用设备可以是具有存储器和处理器的计算机设备,也可以是存储有对应计算机可执行指令的处理模块。
72.在一些实施例中,防盗信息嵌入设备可以按照防盗信息的二进制信息流中各个比特的具体取值(0或1),按序修改字库中至少部分二次贝塞尔曲线的线外控制点p1的坐标值,以使修改后的坐标值的奇偶性指示该二进制信息流的相应比特的取值,从而完成该二进制信息的所有比特的嵌入,并使字库中所有修改后的线外控制点p1’的坐标值包含防盗信息。
73.具体来说,对于二进制信息流中的一个比特,防盗信息嵌入设备可以修改原版truetype字体库文件中对应二次贝塞尔曲线的线外控制点p1的横坐标值和/或纵坐标值,以使修改后的线外控制点p1’的横坐标值和/或纵坐标值的奇偶性体现该比特的具体取值(0或1)。也就是说,若该比特所对应的线外控制点的坐标值的奇偶性与该比特所指示的奇偶性相吻合,则可以保持该线外控制点的坐标值不变;否则,可以将该线外控制点的坐标值增大或减小1个坐标值单位,以使其与该比特所指示的奇偶性相吻合。
74.请参考图3,图3示出了根据本发明的一个实施例提供的嵌入防盗信息的示意图。
75.如图3所示,在一个实施例中,防盗信息嵌入设备可以根据生成的防盗信息的二进制信息流(例如:10100110010100110100111000),按序修改字库中至少部分二次贝塞尔曲线的线外控制点p1的坐标值。具体来说,若字库文件中存储的第一个二次贝塞尔曲线的线外控制点的坐标值为p1(123,67),则防盗信息嵌入设备可以根据防盗信息的二进制信息流的第一个比特的取值1和第二个比特的取值0,保持该二次贝塞尔曲线的线外控制点的横坐标值为奇数123,而将该二次贝塞尔曲线的线外控制点的纵坐标值修改为偶数68,以获得修改后的线外控制点p1’(123,68)。
76.之后,防盗信息嵌入设备可以根据防盗信息的二进制信息流的第三个比特1和第四个比特0,对字库文件中存储的第二个二次贝塞尔曲线的线外控制点的坐标值进行修改,以使该线外控制点的横坐标值为奇数,而使该线外控制点的纵坐标值为偶数。
77.依次类推,防盗信息嵌入设备可以逐一地将防盗信息的二进制信息流各比特的取值,按序嵌入字库中前十三个二次贝塞尔曲线的线外控制点的坐标值中,以使字库中所有修改后的线外控制点p1’的坐标值包含防盗信息。
78.如图3所示,由于本发明提供的上述truetype字库的防盗信息嵌入方法保持了二
次贝塞尔曲线内部起点p0与尾部连接点p2的位置信息不变,而仅对线外控制点p1进行了1个位置单位的位置偏移,字库中修改后的各字符只会发生一个单位的曲度变化,但仍能保持整体字体的连接性。因此,嵌入了防盗信息的truetype字库文件仍能保障用户的正常使用,同时盗用者也难以通过目视发现truetype字库已被嵌入防盗信息。
79.本领域的技术人员可以理解,上述根据防盗信息的二进制信息流中各比特取值同时修改线外控制点的横坐标值和纵坐标值的方案,只是本发明提供的一个实施例,主要用于清楚地展示本发明的构思,并提供一种便于公众实施的具体方案,而非用于限制本发明的保护范围。
80.可选地,在另一些实施例中,防盗信息嵌入设备也可以仅按照防盗信息的二进制信息流中各个比特的具体取值,按序修改字库中至少部分二次贝塞尔曲线的线外控制点p1的横坐标值或纵坐标值,以使修改后的横坐标值或纵坐标值的奇偶性指示该二进制信息流的相应比特的取值,从而完成该二进制信息的所有比特的嵌入,并使字库中所有修改后的线外控制点p1’的坐标值包含防盗信息。
81.本领域的技术人员还可以理解,上述从第一个线外控制点起始依序修改多个线外控制点坐标值的方案,只是本发明提供的一个实施例,主要用于清楚地展示本发明的构思,并提供一种便于公众实施的具体方案,而非用于限制本发明的保护范围。
82.可选地,在另一些实施例中,防盗信息嵌入设备也可以在truetype字库中按照防盗信息的二进制信息流的长度,对平均分布的多个二次贝塞尔曲线的线外控制点的坐标值进行修改,从而向truetype字库嵌入该防盗信息的二进制信息流。
83.优选地,在本发明的一个实施例中,上述至少部分的线外控制点可以不包括所在曲线靠近字体边界的线外控制点,或所在曲线的曲率接近0的线外控制点。也就是说,在向truetype字库嵌入该防盗信息的二进制信息流时,防盗信息嵌入设备可以进一步判断对应二次贝塞尔曲线的位置和曲率。
84.若对应二次贝塞尔曲线的线外控制点p1靠近字体的边界,则防盗信息嵌入设备可以跳过该二次贝塞尔曲线,而直接将待嵌入的比特值嵌入到下一个二次贝塞尔曲线中,以避免二次贝塞尔曲线过度失真影响用户的正常使用。
85.同理,若对应二次贝塞尔曲线的线外控制点p1过于接近曲线,则防盗信息嵌入设备可以判断所在曲线的曲率接近0,从而跳过该二次贝塞尔曲线而直接将待嵌入的比特值嵌入到下一个二次贝塞尔曲线中,以避免二次贝塞尔曲线过度失真影响用户的正常使用。
86.在本发明的一些实施例中,防盗信息嵌入设备可以在根据授权信息生成防盗信息的同时,进一步读取该授权信息的二进制信息流的长度,以计算对应防盗信息的二进制信息流的长度。之后,防盗信息嵌入设备可以在授权信息之前加上固定长度的信息长度信息以获得防盗信息。该信息长度信息可以指示防盗信息的二进制信息流的长度。
87.具体来说,防盗信息嵌入设备可以根据用户输入的授权序列号sn201908231146user100112,生成指示该授权序列号长度(24位)的信息长度信息(11000),并将该信息长度信息添加在授权信息之前以获得防盗信息,以便于truetype字库的使用设备进行读取。在一些实施例中,该信息长度信息可以具有固定的长度(例如:8位)。也就是说,防盗信息嵌入设备可以将该信息长度信息补全为00011000,以便truetype字库的使用设备读取防盗信息的前八个比特的取值以获取该信息长度信息,从而获取防盗信息的二进
制信息流的长度。之后,truetype字库的使用设备可以根据信息长度信息指示的防盗信息的信息流长度,读取对应数量的各二次贝塞尔曲线的坐标值,以提取防盗信息的二进制信息流。
88.在一些实施例中,防盗信息嵌入设备可以将该八个比特的取值嵌入到字库中前四个二次贝塞尔曲线的线外控制点p1的横纵坐标中。之后,防盗信息嵌入设备可以从第五个二次贝塞尔曲线的线外控制点p1起,依序向字库中嵌入二进制信息流的剩余部分的比特。
89.在一个优选的实施例中,防盗信息嵌入设备还可以进一步根据防盗信息的修改模式,在授权信息之前加上固定长度的修改模式信息以获得防盗信息。具体来说,防盗信息嵌入设备可以响应于同时修改线外控制点的横坐标值和纵坐标值,生成11的修改模式信息;可以响应于仅修改线外控制点的横坐标值,生成10的修改模式信息;也可以响应于仅修改线外控制点的纵坐标值,生成01的修改模式信息。
90.在一个优选的实施例中,防盗信息嵌入设备还可以进一步根据防盗信息的嵌入模式,在授权信息之前加上固定长度的嵌入模式信息以获得防盗信息。具体来说,防盗信息嵌入设备可以响应于从第一个线外控制点起逐一修改多个线外控制点的坐标值,生成01的嵌入模式信息;可以响应于从第一个线外控制点起间隔地修改多个线外控制点的坐标值,生成10的嵌入模式信息;也可以响应于根据防盗信息的长度平均分布地修改多个线外控制点的坐标值,生成11的嵌入模式信息。
91.在一个优选的实施例中,防盗信息嵌入设备还可以基于用户输入的授权信息生成纠错码信息,并在授权信息的末尾加上该纠错码信息以获得防盗信息。在一些实施例中,该纠错码信息可以通过对授权信息进行加密计算而生成,用于验证并纠正防盗信息中的错误。具体来说,truetype字库的使用设备可以通过对纠错码信息进行反加密计算还原对应的授权信息。通过将直接读取的授权信息与还原获得的授权信息进行比对,即可发现直接读取的授权信息是否存在数据缺失或是否被篡改。在一些实施例中,truetype字库的使用设备可以根据该冗余的纠错码信息对存在数据缺失或被篡改的授权信息进行纠正。
92.在一些实施例中,上述防盗信息嵌入设备可以通信连接字库版权方运营的授权与追踪系统。在生成防盗信息之后,防盗信息嵌入设备可以联网环境中将提取出来的防盗信息发送给授权与追踪系统,并从授权与追踪系统下载修改后的truetype字体库文件,以安装到购买字库使用权时填写的指定设备上。
93.根据本发明的另一方面,本文还提供了一种truetype字库的使用方法。
94.请参考图4,图4示出了根据本发明的另一方面提供的truetype字库的使用方法的流程示意图。
95.如图4所示,在本发明提供的上述truetype字库的使用方法中,可以包括步骤:
96.401:基于truetype字库中至少部分的线外控制点的坐标值,提取防盗信息的二进制信息流,该防盗信息中包含授权用户的授权信息;
97.402:将防盗信息发送至验证服务器,以基于防盗信息中的授权信息验证truetype字库的当前使用是否合法;以及
98.403:响应于验证通过,接收对应授权用户的坐标修正数据以基于坐标修正数据恢复truetype字库中至少部分的线外控制点的坐标值,以获得原始的truetype字库。
99.在本发明的一些实施例中,truetype字库的使用设备可以基于嵌入有防盗信息的
部分二次贝塞尔曲线的线外控制点p1’的坐标值的奇偶性,获得防盗信息的二进制信息流中相应比特的取值(0或1)。通过依序读取各二次贝塞尔曲线的线外控制点p1’的坐标值的奇偶性,即可获得二进制信息流的所有比特值。
100.在一些优选的实施例中,防盗信息中可以包括指示修改模式的修改模式信息、指示嵌入模式的嵌入模式信息,以及指示修改信息长度的信息长度信息。在一些实施例中,truetype字库的使用设备可以响应于字库中第一个二次贝塞尔曲线的线外控制点p1’的横纵坐标都为奇数,即修改模式信息为11,判断防盗信息采用了同时修改线外控制点的横坐标值和纵坐标值的修改模式。在一些实施例中,truetype字库的使用设备可以响应于字库中第二个二次贝塞尔曲线的线外控制点p1’的横坐标为偶数而纵坐标为奇数,即嵌入模式信息为01,判断防盗信息采用了从第一个线外控制点起逐一修改多个线外控制点的坐标值的嵌入模式。在一些实施例中,truetype字库的使用设备可以响应于字库中第三至第六个二次贝塞尔曲线的线外控制点p1’的坐标值指示的信息长度信息为00011000,确定对应的授权序列号长度为24位,从而基于字库中第七至第十八个二次贝塞尔曲线的线外控制点p1’的坐标值提取防盗信息的二进制信息流。
101.本领域的技术人员可以理解,上述从字库的第一个二次贝塞尔曲线的线外控制点p1’起始依序读取的多个线外控制点坐标值的方案,只是本发明提供的一个实施例,主要用于清楚地展示本发明的构思,并提供一种便于公众实施的具体方案,而非用于限制本发明的保护范围。
102.可选地,在另一些实施例中,truetype字库的使用设备也可以响应于防盗信息中的嵌入模式信息为11,而按照防盗信息的二进制信息流的长度平均分布地读取字库中多个二次贝塞尔曲线的线外控制点p1’的坐标。
103.在一个优选的实施例中,上述至少部分的线外控制点可以不包括所在曲线靠近字体边界的线外控制点,或所在曲线的曲率接近0的线外控制点。也就是说,在提取防盗信息的二进制信息流时,truetype字库的使用设备可以进一步判断对应二次贝塞尔曲线的位置和曲率。
104.若二次贝塞尔曲线的线外控制点p1’靠近字体的边界,则truetype字库的使用设备可以跳过该二次贝塞尔曲线,而直接读取下一个二次贝塞尔曲线的线外控制点p1’的坐标值。同理,若二次贝塞尔曲线的线外控制点p1’过于接近曲线,则truetype字库的使用设备可以判断所在曲线的曲率接近0,从而跳过该二次贝塞尔曲线而直接读取下一个二次贝塞尔曲线的线外控制点p1’的坐标值。
105.在一个优选的实施例中,防盗信息还可以包括位于授权信息的末尾的纠错码信息。该纠错码信息可以通过对授权信息进行加密计算而生成,用于验证并纠正防盗信息中的错误。truetype字库的使用设备可以通过对纠错码信息进行反加密计算还原对应的授权信息。通过将直接读取的授权信息与还原获得的授权信息进行比对,即可发现直接读取的授权信息是否存在数据缺失或是否被篡改。在一些实施例中,truetype字库的使用设备可以根据该冗余的纠错码信息对存在数据缺失或被篡改的授权信息进行纠正。
106.在本发明的一些实施例中,上述验证服务器包括但不限于互联网的外部授权与追踪系统和/或在企业内网环境下构建的内部授权与追踪系统。该外部授权与追踪系统可以由字库的版权方运营,用于追踪盗用源头,以便版权方进行权利追偿。该内部授权与追踪系
统可以由企业自行维护,用于自查企业使用的字库文件是否为正版。在一些实施例中,truetype字库的使用设备可以通信连接字库版权方运营的授权与追踪系统。truetype字库的使用设备可以将当前使用truetype字库的用户的用户信息和机器的机器识别信息发送至授权与追踪系统以执行授权信息验证。
107.在一些实施例中,响应于验证通过,truetype字库的使用设备可以基于该坐标修正数据恢复truetype字库中被修改的部分二次贝塞尔曲线的线外控制点p1’的坐标值,以获得原始的truetype字库。在一些实施例中,该坐标修正数据可以由防盗信息嵌入设备发送到授权与追踪系统,可以包括被修改的部分二次贝塞尔曲线的线外控制点p1’的坐标值的修改记录。在验证通过之后,truetype字库的使用设备可以从授权与追踪系统下载对应授权用户的坐标修正数据,从而基于其中的修改记录修正被修改的部分二次贝塞尔曲线的线外控制点p1’的坐标值,以获得原始的truetype字库。
108.在一些实施例中,若授权与追踪系统的判断授权信息验证结果是非授权用户与场所时,则可以向truetype字库的使用设备返回验证失败结果。此时,truetype字库的使用设备的配套程序可以记录当前用户与场所信息,并将其发送给授权与追踪系统,以便版权方进行后续的盗用追踪。
109.尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
110.请参考图5,图5示出了根据本发明的另一方面提供的truetype字库的防盗信息嵌入设备的结构示意图。
111.如图5所示,本发明提供的上述计算机设备,包括存储器51、处理器52及存储在存储器51上并可在处理器52上运行的计算机可执行指令。处理器52执行该计算机可执行指令时,可以实现上述任意一个实施例提供的truetype字库的防盗信息嵌入方法的步骤,从而向字体内容中嵌入隐秘水印以实现防复制盗用与盗版追踪功能。
112.请参考图6,图6示出了根据本发明的另一方面提供的truetype字库的使用设备的结构示意图。
113.如图6所示,本发明提供的上述计算机设备,包括存储器61、处理器62及存储在存储器61上并可在处理器62上运行的计算机可执行指令。处理器62执行该计算机可执行指令时,可以实现上述任意一个实施例提供的truetype字库的使用方法的步骤,从而发布保持视觉效果的嵌入后字体文件以实现防复制盗用与盗版追踪功能。
114.尽管上述的实施例所提供的处理器52、62可以通过软件与硬件的组合来实现。但本领域的技术人员可以理解,处理器52、62也可以在软件或硬件中单独加以实施。对于硬件实施而言,处理器52、62可以在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dapd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、用于执行上述功能的其它电子装置或上述装置的选择组合来加以实施。对软件实施而言,处理器52、62可以通过在通用芯片上运行的诸如程序模块(procedures)和函数模块(functions)等独立的软件模块来加以实施,其中每一个模块可以执行一个或多个本文中描述的功能和操作。
115.根据本发明的另一方面,本文还提供了一种计算机可读存储介质。
116.本发明提供的上述计算机可读存储介质,其上存储有计算机可执行指令。该计算机可执行指令被处理器52执行时,可以实现上述任意一个实施例提供的truetype字库的防盗信息嵌入方法的步骤,从而向字体内容中嵌入隐秘水印以实现防复制盗用与盗版追踪功能。
117.根据本发明的另一方面,本文还提供了一种计算机可读存储介质。
118.本发明提供的上述计算机可读存储介质,其上存储有计算机可执行指令。该计算机可执行指令被处理器62执行时,可以实现上述任意一个实施例提供的truetype字库的使用方法的步骤,从而发布保持视觉效果的嵌入后字体文件以实现防复制盗用与盗版追踪功能。
119.本领域技术人员将可理解,信息、信号和数据可使用各种不同技术和技艺中的任何技术和技艺来表示。例如,以上描述通篇引述的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子、或其任何组合来表示。
120.本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
121.结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。
122.结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
123.在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、
eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
124.提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。