CN1461986A - 覆盖电子墨迹 - Google Patents

覆盖电子墨迹 Download PDF

Info

Publication number
CN1461986A
CN1461986A CN03131444A CN03131444A CN1461986A CN 1461986 A CN1461986 A CN 1461986A CN 03131444 A CN03131444 A CN 03131444A CN 03131444 A CN03131444 A CN 03131444A CN 1461986 A CN1461986 A CN 1461986A
Authority
CN
China
Prior art keywords
ink marks
ink
inkoverlay
control
inkpicture
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.)
Granted
Application number
CN03131444A
Other languages
English (en)
Other versions
CN1318940C (zh
Inventor
A·古纳里斯
S·道奇
T·A·杰林斯基
A·J·戈尔德贝格
E·A·齐姆伯格
T·A·托赛特
R·L·钱伯斯
T·H·坎纳贝尔
R·巴拉兹
S·巴塔查里亚
M·K·比斯瓦斯
B·德雷赛维克
S·A·费希尔
B·E·克兰兹
S·M·颂吉
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1461986A publication Critical patent/CN1461986A/zh
Application granted granted Critical
Publication of CN1318940C publication Critical patent/CN1318940C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Document Processing Apparatus (AREA)
  • Inks, Pencil-Leads, Or Crayons (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Exposure Or Original Feeding In Electrophotography (AREA)

Abstract

在一篇文档上覆盖电子墨迹。一个典型的场景可以是其将有用于以电子墨迹标记一篇文档,如通过在下面的文档上进行书面注释、描画等等。在某些实施例中,开发者可以容易地定义一个涂墨表面,如在一篇文档上的一个透明或不透明的窗口。该涂墨表面可以作为一个输入表面,这样用户可以书写在该涂墨表面上,如此就表现成该文档自身被标记。

Description

覆盖电子墨迹
本申请要求美国临时专利申请序列编号60/379749(律师所编号003797.00401)和60/379781(律师所编号003797.87571)的优先权,这两个申请都在2002年5月14日入档,都题为“墨迹接口”,在此通过引用包括其附加权利要求的其完整内容,将其合并。
技术领域
本发明的各方面一般涉及用于覆盖电子墨迹的方法和设备,更特别地涉及一种使开发者能容易地使用多种墨迹覆盖特性的应用编程接口。
背景技术
典型的计算机系统(特别是使用图形用户界面(GUI)系统如MicrosoftWINDOWS的计算机系统)已被优化来从一个或多个离散的输入设备(如用于输入文本的键盘)和指点设备(如具有一个或多个用于驱动该用户界面的按键的鼠标)接收用户输入。这些到处存在的键盘和鼠标接口提供对文档、电子表格、数据库字段、图画、照片等的快速创建和修改。然而,由这些键盘和鼠标接口所提供的灵活性与非计算机(即标准)的笔和纸相比,还有很显著的差距。用标准的笔和纸,用户可以编辑文档,在空白处书写注释,以及描画图片和其它形状等等。在某些情况下,用户可能更愿意使用笔来标记文档,而不是在屏幕上浏览文档,因为能在键盘和鼠标接口的限制外自由进行注释。
有些计算机系统允许用户在屏幕上画图。例如,Microsoft READER应用对一个文档添加电子墨迹(在此也称“墨迹”)。系统存储该墨迹并在请求时将其提供给用户。其它的应用(例如,在相关领域已知的与Palm 3.x和4.x以及PocketPC操作系统相关联的画图应用)允许捕捉和存储这些图画。而且,多种画图应用(如Coral Draw)和照片编辑应用(如Photoshop)可以与基于记录笔的输入产品(如Wacom书写板产品)一起使用。这些图画包括与用来标记这些图画的笔划相关联的特性。举例来说,线条的宽度和颜色可以以墨迹来存储。这些系统的一个目的就是复制运用到一张纸上的物理墨迹的外观。然而,纸上的墨迹可能具有大量的不能由某个坐标和连接线段的电子集合所捕捉的信息。这些信息中的某一些可能包括所用笔尖的厚度(如通过物理墨迹的宽度所看到的)或笔与纸的角度、笔尖的形状、墨迹沉积的速度等等。
用电子墨迹带来了另一个问题。这已被认为是用其所写的应用的一个部分。这导致了基本上不能对其它应用或环境提供电子墨迹的丰富性。尽管文本可能在多个应用之间(如通过使用一个剪贴板)转移,但墨迹没有与墨迹相互作用的能力。举例来说,不能创建一个八字形的图像,通过剪贴板手段将所创建的图像复制并粘贴到某篇文档中,然后使墨迹变成粗体。一个难点就是应用间图像的不可移植性。
发明内容
本发明的各方面提供了一种与其特性相合的灵活与高效的接口,通过调用与电子墨迹相关的方法和/或接收与电子墨迹相关的事件,解决由传统设备和系统所确定的一个或多个问题。本发明的一些方面涉及所存储墨迹容量的改进。其它的方面则与修改所存储的墨迹有关。
可能期望让开发者能容易地向他们已有的和新的应用添加对墨迹特性的第一流的支持。也期望能鼓励对墨迹实现的应用采用一致的外观。举例来说,可能期望能增加对在一般可能接受或不接受墨迹输入的文档上书写并/或与之相交互的支持。
通过考虑以下对较佳实施例的详细描述,本发明的这些或其它特性将变得显明。
附图说明
在联系附图一起阅读时,能更好地理解前面的发明概述以及下面对较佳实施例的详细描述,这些附图对于所主张的发明而言是以示例方式,而不是以限制方式来包括的。
图1是一个可以用来实现本发明多个方面的说明性通用数字计算环境的功能性框图。
图2是一个可以如本发明多个方面所述那样使用的说明性书写板计算机和记录笔的平面视图。
图3-6是可以如本发明多个方面所述那样使用的架构和接口的功能性框图。
图7-9是一篇具有如本发明多个方面所述的一个或多个墨迹覆盖对象的文档的说明性屏幕截图。
具体实施方式
下面描述了一种在文档上覆盖电子墨迹的方式。
一般计算平台
图1是一个可以用来实现本发明多个方面的传统通用数字计算环境示例的功能性框图。在图1中,计算机100包括一个处理单元110、一个系统存储器120,以及一条将多种系统部件(包括系统存储器)与处理单元相连的系统总线130。系统总线130可以是几种总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线,以及使用多种总线架构中任何一种的局部总线。系统存储器120包括只读存储器(ROM)140和随机访问存储器(RAM)150。
在ROM140中存储了一个基本输入/输出系统160(BIOS),包含帮助在计算机100内各部件间传输信息的基本过程(例如在启动时)。计算机100还包括一个用于读取或写入硬盘(未示出)的硬盘驱动器170、一个用于读取或写入可擦除磁盘190的磁盘驱动器180,和一个用于读取或写入可擦除光盘192(如CD ROM或其它光媒介)的光盘驱动器191。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别由硬盘驱动器接口194、磁盘驱动器接口193和光盘驱动器接口194连接到系统总线130。这些驱动器和与之相关联的计算机可读取媒介为个人计算机100提供了对计算机可读取指令、数据结构、程序模块和其它数据的不易失存储。相关领域的行家会明白,在示例操作环境中还可以使用其它类型的可存储可由计算机访问数据的计算机可读取媒介,如盒式磁带、闪存卡、数字视频盘、Bernoulli盒带、随机访问存储器(RAM)、只读存储器(ROM)等等。
许多程序模块可以存储在硬盘驱动器170、磁盘190、。光盘192、ROM140或RAM150上,包括操作系统195、一个或多个应用程序196、其它程序模块197,以及程序数据198。用户可以通过输入设备如键盘101和指点设备102将命令和信息输入计算机100。其它的输入设备(未示出)可以包括话筒、游戏杆、游戏手柄、卫星天线、扫描仪等等。这些或其它的输入设备通常通过连接系统总线的串口接口106连接到处理单元110,但也可以由其它接口来连接,如并口、游戏口或通用串行总线(USB)。而且,这些设备也可以通过某种适当的接口(未示出)直接连接到系统总线130。监视器170或其它类型的显示设备也通过某个接口(如视频适配器108)连接到系统总线130。除了监视器以外,个人计算机一般还包括其它外围输出设备(未示出),如音箱或打印机。在某一较佳实施例中,提供了一种笔数字化仪165以及伴随的笔或记录笔166,以数字化地捕捉徒手的输入。尽管显示了在笔数字化仪165和处理单元110之间的直接连接,但实际上,如在相关领域中已知的那样,笔数字化仪165也可以通过串口、并口或其它接口和系统总线130而连接到处理单元110。而且,尽管数字化仪165是与监视器107分开显示的,但数字化仪165的可用输入区域最好与监视器107的显示区域一同展开。而且,数字化仪165可以集成到显示器107中,或者可以作为一个覆盖或者附加于监视器107的单独设备。
计算机100可以运行在使用与一台或多台远端计算机(如远端计算机109)的逻辑连接的联网环境中。远端计算机109可以是服务器、路由器、网络PC、对等设备或其它普通的网络节点,一般包括上面关于计算机100所描述的多种或所有组件,尽管在图1中只图示了一个存储器存储设备111。在图1中所描述的逻辑连接包括局域网(LAN)112和广域网(WAN)113。这样的联网环境在办公室、企业范围计算机网络、内联网和互联网中是相当普遍的。
当在某个LAN联网环境中使用时,计算机100通过一个网络接口或适配器114而连接到局域网112。当在某个WAN联网环境中使用时,个人计算机100一般包括一个调制解调器115或其它手段,用于在该广域网113(如互联网)上建立通信。调制解调器115可以是内置或外置的,通过串口接口106连接到系统总线130。在联网环境中,关于个人计算机100所描述的程序模块(或其部分)可以存储在远端存储器存储设备中。
可以明白,所示出的网络连接是示例性的,也可以使用其它用于在计算机间建立通信链路的技术。假定已存在多种已知的协议之一,如TCP/IP、以太网、FTP、HTTP等等,而系统可以运行在某种客户机-服务器配置中,使用户能从某台基于Web的服务器上获取网页。多种传统Web浏览器中的任何一种都可以用来显示与操作在网页上的数据。
图2显示了某种可以按本发明多个方面所述的那样使用的基于记录笔的计算机处理系统(也称为书写板PC)201的一个示例。在图1的系统中的所有或任何特性、子系统和功能都可以包括在图2的计算机中。书写板PC201包括一个很大的显示屏表面(如某种数字化平板显示屏,最好是某种液晶显示屏(LCD)),在其上显示多个窗口203。其它可以使用的显示技术包括(但不限于)OLED显示屏、等离子显示屏等等。使用记录笔204的笔尖(该笔尖在此也称为“指针”),用户可以在数字化显示区域选择、加亮和书写。合适的数字化显示面板的示例包括电磁笔数字化仪,如Mutoh或Wacom笔数字化仪。其它类型的笔数字化仪(如光数字化仪)也可以使用。书写板PC201解释用记录笔204作的标记,以操作数据、输入文本,以及执行常规的计算机应用如电子表格、字处理程序等等。
记录笔可以装备按键或其它特性,来增加其选择能力。在某一实施例中,记录笔可以实现成某种“铅笔”或“钢笔”,其中一端组成一个书写部分,而另一端组成一个“擦除”端(该端在显示屏上移过时,指示出所要擦除的显示屏部分)。其它类型的输入设备(如鼠标、轨迹球等等)也可以使用。而且,用户自己的手指也可以用来在某种接触敏感或接近敏感的显示屏上选择或指示已显示图像的部分。因此,如这里所使用的术语“用户输入设备”倾向于具有广泛的定义,并包含许多在已知输入设备上的变种。电子墨迹与Ink(墨迹)对象的概念
在此所使用的墨迹称为电子墨迹。电子墨迹可以由一系列或一组笔划构成,其中每个笔划包括一系列或一组点。笔划和/或点的序列可以按所捕捉的时间和/或该笔划和/或点在页面上出现的地方来排序。笔划组可以包括笔划和/或点的序列,以及/或无序的笔划和/或点。点可以用多种已知的技术来表示,包括Cartesian坐标(X,Y)、极坐标(r,Θ)以及在相关领域中已知的技术。笔划还可以可替换地以一个点和在下一个点方向的一个矢量来表示。笔划确定包含关于墨迹的点或线段的任何表示,而无关乎其下面的点或连接点的事物的表示。墨迹的搜集一般在数字化仪(如显示屏表面202的数字化仪)开始。用户可以在数字化仪上防止一个记录笔,并开始写或画。在此时,会产生新的墨迹包(即关于墨迹的数据的包)。用户还可以在足够接近数字化仪的空中移动记录笔,使之能被数字化仪所感知。在这时,数据包(在此称为“空中包”)可以根据所感知的记录笔在空中的运动来产生。包可以不仅包括位置信息,还可以包括记录笔压力和/或角度信息。
为存储墨迹,可以创建一个Ink(墨迹)对象,来表示由记录笔204在显示屏表面202和/或其它输入上所描画的原来的墨迹笔划。所搜集的墨迹笔划可以从在显示屏表面202上的任何地方或其某个已定义的部分(如某个特定窗口)来搜集。Ink对象本质上是一个墨迹数据的容器。墨迹如何存储在墨迹对象中的具体格式对本发明并不重要。但是,最好将如原来所描画的墨迹笔划存储在墨迹对象中。
可以定义两种示例性的墨迹对象类型。一个tInk对象(“t”意为“文本”)可以实现成一个表示用来构成字母或字词的墨迹的OLE对象。tInk对象允许由如某个文本识别器来将手写的墨迹转换成文本。可以将一个关于墨迹并且具有文本环境的墨迹对象称为tInk对象。文本墨迹的颜色和/或字体大小,以及该文本墨迹是否是下划线的、粗体的、斜体的等等,可以程序化地设定,并且可以基于在该tInk对象周围的文本的性质。换句话说,可以将在tInk对象所要插入的点的周围环境的属性应用于该tInk对象。在某一实施例中,tInk对象只包含用于提交给文本识别器的单个字词,这样一个句子就可以包含多个tInk对象。另一方面,一个sInk对象(“s”意为“草图”)也可以定义成一个表示不用来构成字词的墨迹的对象。sInk对象也可以是一个OLE对象。因此一个sInk对象可以解释成一幅图画或任何其它的非文本环境。sInk对象也可以用于表示多个字词。一个墨迹兼容的应用(和/或用户)可以将某个Ink对象标记为tInk对象或其它(如sInk对象)。为描述起见,这两种墨迹类型在此称为“tInk”和“sInk”。但是可以明白,也可以用其它名字来表示可以使用的多种墨迹对象类型。而且,可以用可替换的对象类型来以任何所期望的格式存储电子墨迹。
墨迹控件API概述
参考图3,一个在此称为墨迹控件API的API提供开发者一个用于多种对象和控件的模型。墨迹控件API可以对使用多种应用开发软件(如Microsoft天然的Win32 COM API、Microsoft ActiveX API和/或Microsoft Managed API)的用户可用。墨迹控件API使开发者能容易地对已存在的非墨迹兼容的应用和新应用添加一流的对墨迹的支持。开发者仅仅需要添加合适的控件并设定多种属性。墨迹控件API进一步鼓励对实现墨迹的应用采用一致的外观,墨迹控件API可以作为用于实现用户体验的一个极好的起始点。墨迹控件API额外地提供开发者需要的墨迹用户接口组件,然而在另一方面却需要从划迹中自我生成。
墨迹控件API的多种对象和控件包括InkCollector自动化对象302、InkCollector所管理对象306、InkOverlay自动化对象303、InkPicture ActiveX控件304、InkOverlay所管理对象305、PictureBox WinForms控件301以及/或InkPicture Winforms控件307。InkOverlay对象使开发者能容易地对应用添加注解功能,并扩展墨迹搜集功能,以提供对基本编辑(如选择、移动、调整大小和擦除墨迹)的支持。InkPicture控件包含InkOverlay对象的某些或所有API组件,并使开发者能对窗口添加一个区域,用于搜集和编辑墨迹。InkPicture控件可以进一步使开发者能对窗口添加背景图片、图像和/或色彩。
以下将进一步描述的这些对象和控件可以与一个或多个主应用交互,如ActiveX主应用(例如VB6)和/或Win32主应用(全体的301)和/或共同语言运行期(CLR)主应用(VB7/C#)306。InkOverlay自动化对象303和InkPictureActiveX控件304可以由天然的Win32/ActiveX开发者使用,而InkOverlay所管理对象305和InkPicture WinForms控件307可以由使用CRL的开发者使用。在本图中,实心箭头表示一个示例性的继承比喻,而断开的箭头指示一个示例性的使用比喻。
InkCollector对象
InkCollector对象被用来从某个墨迹输入设备捕捉墨迹,并/或将墨迹传递给某个应用。InkCollector对象通过搜集一个或多个墨划的墨迹并将该墨迹存储到一个或多个相关联的墨迹对象中,在某种程度上扮演一个将墨迹“灌”入一个或多个不同和/或独特的墨迹对象中的龙头。InkCollector对象可以将其自身配属于某个已知的应用窗口。而后它可以通过使用任何或所有可用的书写板设备(可以包括记录笔204和/或鼠标)在该窗口上提供实时的涂墨。为使用InkCollector对象,开发者可以创建它,指定在其中搜集所画墨迹的窗口,并激活该对象。在InkCollector对象被激活后,可以被设定来以多种墨迹搜集模式(在其中搜集墨划和/或姿态)来搜集墨迹。姿态是记录笔204的某种运动或其它动作,不是解释成渲染的墨迹,而是解释成执行某些动作或功能的请求或命令。举例来说,某种特定姿态可以为选择墨迹的目的而执行,而另一种姿态可以是为斜体化墨迹的目的而执行。对于在数字化仪输入上或接近数字化仪输入的每个运动,InkCollector对象将搜集一个笔划和/或一个姿态。
InkOverlay对象
InkOverlay对象是一个对注解场景有用的对象,在其中最终用户不必关心在墨迹上进行识别,但可以对墨迹的尺寸、形状、颜色和位置感兴趣。这很适合于进行注解和基本的抄写。该对象的主要作用就是将墨迹显示成墨迹。缺省的用户界面是一个具有不透明墨迹的透明矩形。InkOverlay以几种方式扩展了InkCollector类。举例来说,InkOverlay对象(和/下面所讨论的InkPicture控件)可以支持选择、擦除和调整墨迹大小,以及删除、剪切、复制和粘贴命令。
InkOverlay对象可以有用的一个典型场景是如通过在下面的文档上进行手写注释、描画等等来标记一个文档。InkOverlay对象允许容易地实现这一场景所要求的涂墨和布局能力。举例来说,为与InkOverlay对象一起运作,可以实例化一个InkOverlay对象,将该InkOverlay配属与另一个窗口的hWnd,并将InkOverlay Enabled属性设定为真。
参照图4,显示了组成InkOverlay对象的内部和外部依赖的组件部分的高层次框图。箭头指示了一个使用比喻。一个InkOverlay对象401可以从InkCollector对象402接收墨迹。InkOverlay对象401可以具有选择管理功能403和/或编辑功能404。如在下面的示例中所讨论的那样,InkOverlay对象401可以具有透明覆盖窗口管理功能405,以透明地覆盖另一个对象(窗口)或其它显示的数据项,如某个扫描得到的纸表格。在外部,InkOverlay对象401可以与多种应用和API相交互。举例来说,某个应用可以利用InkOverlay对象401来实现多种低层次的涂墨功能。在某一实施例中,这样的一个应用可以是Microsoft WINDOWS INK SERVICES PLATFORM(WISP)406。应当注意,应用406不限于WISP,如在此所讨论的其它组件那样,也不限于MicrosoftWINDOWS环境。InkOverlay对象401可以进一步与某个自动操作许多低层次WISP406功能的API相交互。在这一实施例中,这一API称为自动化API407。自动化API407包括上面所讨论的墨迹控件API,并提供给开发者包括Ink对象、InkCollector对象、InkOverlay对象和InkPicture控件的对象模型。InkOverlay对象401可以进一步与一个或多个操作系统API(如MicrosoftWINDOWSWin32 API408和/或Microsoft.NETAPI)相交互。
InkOverlay对象401的选择管理功能403支持对墨迹的选择。墨迹可以以多种方式来选择,如通过某种套索工具(选择在某个所跟踪区域中所包含的对象)手段。InkOverlay对象401还可以支持轻击选择,在其中任何在上面和/或附近被点击的Ink对象将被选择。当一个Ink对象或Ink对象组被选择后,调整尺寸的句柄(如八个调整尺寸句柄)就可以出现在该墨迹所框定的方框的四个角以及相邻角之间的一个或多个中点处。移动这些调整尺寸句柄可以使所选择的墨迹按照句柄的运动来调整尺寸。可以用键盘或其它更改器来指令InkOverlay对象在调整尺寸时维持原来的纵横比。墨迹可以进一步用所期望的任何其它手段来调整尺寸。还有,可以用键盘或其它更改器来指令InkOverlay对象在拖动草组操作时复制所选择的墨迹,而不是在拖动时调整墨迹尺寸。如果用户在所选择的区域内任何地方按下并保持,则该墨迹就变成在该控件内可移动的。可以进一步利用一个矩形选择比喻,和/或一个字词、句子和/或段落选择比喻。举例来说,在一个墨迹字词内点击将选择该字词,在一个墨迹句子内任何地方点击将选择这整个句子,而在一个墨迹段落内任何地方点击同样将选择这整个段落。其它用于选择的手段包括利用指示选择行为的特定姿态,如在某个墨划上或附近单击指示对该墨划的选择,在某个字词上或附近双击选择该字词,以及三击选择整个句子。而且,可以通过程序化地或者由最终用户输入直接调用InkOverlay对象的API来选择和/或修改墨迹。
而且,InkOverlay对象可以提供来用于墨迹擦除功能。举例来说,InkOverlay对象可以提供来用于笔划擦除模式和/或点擦除模式。在笔划擦除模式中,如果光标落下并接触到一个已存在的墨划,则该墨划被完全擦除。在点擦除模式中,如果光标落下并接触到一个已存在的墨划,则只有光标和该墨划的重叠区域被擦除。
InkOverlay API
现在参照图5来讨论一个用于InkOverlay对象的说明性应用编程接口(API)。在图5中,InkOverlay对象501以一个方框表示,而一个API的多个组件(或按功能分组的组件)则显示成在表示该InkOverlay对象501的方框中引出或进入的箭头542-558。总的来说,进入InkOverlay对象501方框的箭头指主要修改该InkOverlay对象501(如通过改变其某个属性)和/或向该InkOverlay对象501提供信息的API组件(或按功能分组的组件)。从InkOverlav对象501方框引出的箭头指主要表示由该InkOverlay对象501向其环境提供的某个标志或某些其它信息的API组件(或按功能分组的组件)。但是,这些箭头的方向并不意味着限制,因此一个进入InkOverlay对象501的箭头也并不排除还表示由该InkOverlay对象501向其环境提供的信息。同样地,一个从InkOverlay对象501引出的箭头也并不排除还修改或向InkOverlay对象501提供信息。图5进一步示出了该InkOverlay对象501的多个属性502-520。
在该说明性实施例中InkOverlay API具有以下的某些或所有枚举(包括以其任何组合或子集合)。一个应用姿态枚举定义了在一组应用特定的姿态中设置关注度的值。一个搜集模式枚举定义了确定InkOverlay对象的搜集模式设定的值。一个事件关注度枚举定义了哪些事件是开发者使用InkOverlay对象和/或InkCollector对象所关注的。InkOverlay对象可以用事件关注度枚举来确定哪些信息将通过事件提供给开发者。一个鼠标指针枚举定义了指定所显示的鼠标指针类型的值。这一枚举也在InkPicture控件和InkCollector对象中出现。一个覆盖配属模式枚举定义了指定将新的InkOverlay对象配属到哪里(将InkOverlay对象配属到窗口中控件和/或文本的后面或前面)的值。当将InkOverlay对象配属到前面时,意味着墨迹将在窗口中控件和/或文本的前面渲染。当将InkOverlay对象配属到后面时,意味着墨迹将在直接窗口中渲染,因而在窗口层次中任何其它控件或子窗口的后面。一个覆盖编辑模式枚举定义了指定InkOverlay对象应当使用哪种编辑模式(描画墨迹、删除墨迹、编辑墨迹)的值。一个擦除器模式枚举定义了指定当某个编辑模式枚举设定为删除时墨迹擦除方式的值。一个系统姿态枚举定义了在一组操作系统特定的姿态中设置关注度的值。
在该说明性实施例中的InkOverlay API还具有以下的一个或多个可以设置并可以返回其所表示信息的属性(包括以其任何组合或子集合)。一个配属模式属性502表示了该对象是配属在给定窗口的后面还是前面。一个自动重画属性503表示了当该窗口失效时InkCollector是否将重新描绘。一个正搜集墨迹属性504表示该对象是否正忙于搜集墨迹。一个搜集模式属性505表示了该对象是在只搜集墨迹、只搜集姿态,还是搜集墨迹和姿态。一个光标搜集相关属性506表示了对该对象所遇到的光标的搜集。一个描画特征属性507表示了在搜集和显示墨迹时使用的缺省描画特征。这一属性所指定的描画特征是赋予某个新光标的特征,并可以应用于那些在缺省描画特征设定为无的光标集合中的光标。一个包描述属性508表示了对InkOverlay对象501的包描述。一个动态渲染属性509表示了InkOverlay对象是否将按所搜集的那样来动态地渲染墨迹。一个编辑模式属性510表示了该对象是在墨迹模式、删除模式还是选择/编辑模式中。一个InkCollector激活属性表示了InkCollector是否将搜集笔输入(发送的包、在范围事件中的光标等等)。多个擦除器属性512表示了墨迹是按笔划还是按点来擦除,以及墨迹如何擦除,以及擦除器笔尖的宽度。一个窗口句柄属性513表示了InkOverlay对象501配属给自己的句柄。一个关联Ink对象514表示了与InkOverlay对象相关联的Ink对象。边距属性515表示了InkOverlay对象501在所配属的窗口句柄所关联的窗口矩形周围的x轴和y轴边距(最好是在屏幕坐标系中)。而且,边距属性515可以提供获取与下面所讨论的窗口矩形方法555相关联的行为的一个可替换手段。一个或多个定制鼠标光标属性516表示了当前定制鼠标图标、当鼠标在InkOverlay对象501上(如在该对象的某个可涂墨部分上)时所显示的鼠标指针类型,以及/或当活动指点设备(如记录笔204或鼠标102)使所显示的光标在InkOverlay对象上时所显示的光标类型。一个渲染器属性517表示了用来在屏幕上描画墨迹的渲染器。一个选择属性518表示了当前所选择的墨划的集合。高对比度墨迹属性519表示了当该系统在高对比度模式中时墨迹是否将以高对比度(如只有一种颜色)来渲染,以及是否所有选择UI(如选择边框和选择句柄)都将以高对比度来描画。一个书写板属性520表示了该对象当前用以搜集光标输入的书写板。
在该说明性实施例中的InkOverlay API还具有多个相关联的事件与方法(包括以其任何组合或子集合)。举例来说,可以有光标相关事件与方法542、544。这样的光标相关事件依赖于一个光标(如记录笔204的笔尖)是否在书写板环境的物理探测范围内,或回应于正物理接触数字化书写板表面(如表面202)的光标而发生。光标相关方法回应于所发生的相应光标相关事件而调用。这些特性使开发者能扩展和重载InkOverlay对象的光标功能。
InkOverlay API可以进一步具有光标按键相关事件与方法543。这样的光标按键事件依赖于在光标(如记录笔204)上的一个按键是弹上还是按下而发生。光标按键相关方法回应于所发生的相应光标按键相关事件而调用。这些特性使开发者能扩展和重载InkOverlay对象的光标按键功能。
InkOverlay API可以进一步具有姿态相关事件与方法545、554。这样的姿态相关事件回应于所识别的一个系统姿态或所识别的一个应用特定姿态而发生。某些姿态相关方法回应于所发生的相应姿态相关事件而调用。另一个姿态相关方法则指定在给定姿态组中InkOverlay对象的关注度,或获取该关注度。这些特性使开发者能扩展和重载InkOverlay对象的姿态功能。
InkOverlay API可以进一步具有书写板相关事件与方法546、558。某些书写板相关事件回应于从该系统所添加或删除的一个书写板而发生。书写板相关方法回应于所发生的相应书写板相关事件而调用。其它的姿态相关方法558则指定将InkOverlay对象放置到一个全书写板模式或一个集成书写板中。在全书写板模式中(这可以是缺省模式),如果有多个设备配属于该系统,则集成所有的书写板。由于所有书写板设备都已集成,则可用的光标可以在这些书写板设备中的任一个上使用,而每个书写板将用相同的描画特征映射到整个屏幕。在集成书写板模式中,一个集成的书写板风格计算机输入表面与显示屏共享同一表面;这意味着整个书写板风格计算机输入表面映射整个屏幕,实现窗口的自动更新。
InkOverlay API可以进一步具有包相关事件与方法547。这样的包相关事件回应于新描画的包和新发送的包而发生。包相关方法回应于所发生的相应包相关事件而调用。这些特性可以使开发者能扩展和重载InkOverlay对象的记录笔功能和响应。
InkOverlay API还可以具有描绘相关事件与方法548。这样的描绘相关事件只在InkOverlay对象501随同墨迹的任何选择而描绘墨迹前发生,因而使开发者有机会改变墨迹的外观或改变墨迹本身。一个描绘相关事件还可以回应于完全描绘其某个子集墨迹的InkOverlay对象501而发生,因而使开发者能在已描画的墨迹外描画些东西。描绘相关方法回应于所发生的相应描绘相关事件而调用。这一功能可以使开发者能扩展和重载InkOverlay对象的墨迹渲染行为。这些描绘相关方法还可以事实上不成为InkOverlay对象的一部分,但可以对开发者实现这些方法并将其与InkOverlay对象连接有用,这样它们就能回应于所触发的描绘相关事件而恰当地调用。
InkOverlay API还可以具有选择相关事件与方法549。某些选择相关事件在选择变化前发生,因而提供开发者机会来改变将要发生的选择变化。一个选择相关事件还可以回应于完全变化(程序化地或者作为最终用户动作的结果)的选择而发生。其它的选择相关事件回应于当前选择的位置将要移动或在当前选择的位置变化时发生。还有其它的选择相关事件回应于将要变化的当前选择尺寸或已经变化的当前选择尺寸而发生。选择相关方法回应于所发生的相应选择相关事件而调用。这些特性可以使开发者能扩展和重载InkOverlay对象的选择和编辑功能。
InkOverlay API可以进一步具有墨划相关事件与方法550。一个这样的笔划相关事件回应于用户在任何书写板上描画一个新的笔划而发生。其它笔划相关事件回应于将要删除的笔划或已经删除的笔划而发生。笔划相关方法回应于所发生的相应笔划相关事件而调用。这些特性可以使开发者能扩展和重载InkOverlay对象的墨迹擦除功能。
InkOverlay API可以具有多种进一步的混杂的方法。举例来说,一个描画方法552可以对在所提供设备环境(如屏幕、打印机等)中的某个特定矩形而描画墨迹和选择UI。其它方法553设定某特定InkOverlay事件的当前状态(如该事件正被侦听或使用),或获取该当前状态。还有其它方法555指定窗口矩形以(在窗口坐标系中)设定墨迹描画在什么内,或获取该窗口矩形。另一个方法556确定某个给定的坐标符合调整尺寸句柄、所选择区域的内部部分或根本无选择之一。一个构造器557指定配属某特定窗口句柄的新的InkOverlay对象的创建,该窗口句柄可以在某特定书写板上,并将一个窗口输入矩形映射到一个书写板输入矩形。
在该说明性实施例中的InkOverlay API还可以具有多个边距常量(未示出)。第一个边距常量返回一个值,指定当笔划在缺省边距外时是否修剪它们。第二个边距常量返回由边距属性所使用的缺省边距。这些常量也表现成在InkCollector对象和InkPicture控件中的属性。
InkPicture控件
如前面所提及的那样,可以创建一个控件(在此称为InkPicture控件)(可以是如一个ActiveX控件),使开发者能添加一个用于墨迹搜集和编辑的窗口。InkPicture控件提供了将一幅图像放置在用户可以对其添加墨迹的某个应用或网页中的能力。该图像可以是任何格式,如.jpg、.bmp、.png或.gif格式。InkPicture控件主要可以用于墨迹不必需识别成文本,但可以替换地或另外地存储成墨迹的场景。在某一说明性实施例中,用于InkPicture控件的运行期用户界面是一个具有如一个不透明背景(如单色、图片背景或这两者)并包含不透明或半透明墨迹的窗口。在某一说明性实施例中,InkPicture控件以一个ActiveX或其它控件包裹InkOverlay对象。
InkPicture API
参照图6,示出了一个说明性的InkPicture对象601。InkPicture控件601披露了InkOverlay对象501的某些或所有API组件,以及在图6中所示出的另外的某些或所有API组件。举例来说,在某一说明性实施例中,InkPicture控件601可以实现对所有InkOverlay API组件的访问,但配属模式属性502和/或窗口句柄属性513除外。如下面所讨论的那样,InkPicture控件601可以有其自己的API,添加InkPicture API的功能。在某些实施例中,InkPicture控件601可以是一个ActiveX控件,并可以添加以下与InkOverlay对象501相对照的功能:键盘事件、控件调整尺寸事件、另外的鼠标事件和/或背景颜色与图像相关属性。而且,InkPicture控件601可以从Microsoft PictureBox继承。举例来说,PictureBox可以实现在此关于InkPicture控件601所讨论的某些或所有属性,如背景图像。
在图6中,InkPicture控件601以一个方框表示,而一个API的多个组件(或按功能分组的组件)则显示成在表示该InkPicture控件601的方框中引出或进入的箭头640-658。总的来说,进入InkPicture控件601方框的箭头指主要修改该InkPicture控件601(如通过改变其某个属性)和/或向该InkPicture控件601提供信息的API组件(或按功能分组的组件)。从InkPicture控件601方框引出的箭头指主要表示由该InkPicture控件601向其环境提供的某个标志或某些其它信息的API组件(或按功能分组的组件)。但是,这些箭头的方向并不意味着限制,因此一个进入InkPicture控件601的箭头也并不排除还表示由该InkPicture控件601向其环境提供的信息。同样地,一个从InkPicture控件601引出的箭头也并不排除还修改或向InkPicture控件601提供信息。图6进一步示出了该InkPicture控件601的多个属性602-626。
在某一说明性实施例中,用于InkPicture控件601的API可以具有一个或多个枚举(未示出)。举例来说,一个墨迹图片尺寸枚举定义了指定一个背景图片如何在InkPicture控件内运转的值,如该图片是否将自动调整尺寸以适于在该控件内或在该控件内居中,或是否将以其正常尺寸显示在该控件内,或是否在该控件内伸展。还有,一个用户界面枚举定义了指定用于InkPicture控件的用户界面的状态的值,如焦点和键盘提示的状态、在状态变化后是否显示焦点矩形,以及/或在状态变化后是否对键盘提示加下划线。
在该说明性实施例中,用于InkPicture控件601的API可以具有多个相关联的属性602-626中的某些或全部(包括以其任何组合或子集合)。举例来说,一个或多个可访问性属性602表示了由可访问性客户端应用所使用的InkPicture控件的名称和描述,以及InkPicture控件的可访问角色。一个锚定属性603表示了InkPicture控件的哪条边与其容器的边相锚定。一个或多个背景属性604表示了用于InkPicture控件的背景颜色和在InkPicture控件中显示的背景图像。一个边沿风格属性605表示了用于InkPicture控件的边沿的风格。一个校验属性606表示了在任何接收到焦点时要求校验的控件上InkPicture控件是否使校验进行。一个容器属性607表示了包含InkPicture控件的容器。一个坞属性608表示了InkPicture控件坞靠父容器的哪条或哪些条边。一个或多个拖拽属性609表示了当指针在拖-放操作时所显示的图标和对拖-放操作是使用手动还是自动拖拽模式。一个激活属性610表示了InkPicture控件是否可获得焦点。一个或多个维度属性611表示了InkPicture控件的高度、InkPicture控件的宽度以及InkPicture控件的高、宽两者。这些维度属性可以是任何单位,如像素。一个上下文可感帮助属性612表示了一个对于InkPicture控件的相关上下文标识,并可以用来向某个应用提供上下文可感帮助。一个窗口句柄属性613表示了墨迹所描画的窗口的句柄。一个图像属性614表示了在InkPicture控件中显示的图像。一个控件数组索引属性615表示了在一个控件数组中标识InkPicture控件的编号。一个或多个位置属性616表示了控件的内左边缘和其容器的左边缘之间的距离,和控件的内上边缘和其容器的上边缘之间的距离。一个锁定属性617表示了InkPicture控件的内容是否可以编辑。一个可视性属性618表示了InkPicture控件是否是可视的。一个控件名称属性619表示了InkPicture控件的名称。一个对象属性620表示了与InkPicture控件相应的对象。一个父对象属性621表示了控件所位于其上的对象。一个尺寸模式属性622表示了InkPicture控件如何处理图像的放置和调整尺寸。一个或多个切换属性623表示了InkPicture控件在其父容器内的切换顺序,以及用户是否可以用Tab键来对InkPicture控件提供焦点。一个对象标签属性624表示了关于对象的扩展属性或定制数据。一个工具提示属性625表示了当鼠标(或记录笔)停留在InkPicture控件上时所显示的文本。一个帮助属性626表示了一个与InkPicture控件相关联的上下文编号。该帮助属性626可以用来用“这是什么?”弹出为某个应用提供上下文可感帮助。
在该说明性实施例中的InkPicture API可以进一步具有多个相关联的事件与方法(包括以其任何组合或子集合)。举例来说,一组焦点方法640指定了应当赋予InkPicture控件的焦点。一个或多个焦点事件641回应于InkPicture控件丢失焦点或接收到焦点而发生。一个用户界面焦点事件642回应于焦点或键盘用户界面提示变化而发生。一个z顺序方法643指定了InkPicture控件放置在其图形层次内z顺序的前面还是后面。一个控件尺寸事件644回应于InkPicture控件已调整尺寸而发生。一个尺寸模式事件645回应于尺寸模式属性622已被改变而发生。一个调整尺寸/移动方法646指定了InkPicture控件的移动和/或调整尺寸。一个风格事件647对应于InkPicture控件的风格的变化而发生。一个创建方法648指定了对一个新的InkPicture控件的创建。一个拖拽方法649指定了在InkPicture控件上某个拖拽操作的起始端和/或取消。一个或多个鼠标/记录笔按键事件650回应于鼠标/记录笔的指针在InkPicture控件上而且某个鼠标按键(或某个记录笔按键)被按下或释放而发生。一个或多个点击事件651回应于InkPicture控件上被点击或双击而发生。一个或多个鼠标进入/退出事件652回应于鼠标/记录笔指针进入或退出与InkPicture控件相关联的显示区域而发生。一个或多个鼠标移动事件653回应于鼠标/记录笔指针在InkPicture控件上移动或在InkPicture控件上盘旋而发生。一个鼠标滚轮事件654回应于当InkPicture控件具有焦点时鼠标滚轮的移动而发生。一个拖上事件655回应于某个对象被拖拽到InkPicture控件的边界上而发生。一个拖-放事件656回应于所完成的某个拖-放操作而发生。一个或多个句柄方法657产生回应于所被创建或破坏的某个句柄的事件。一个或多个按键事件658回应于当InkPicture控件具有焦点时某个按键被按下或释放而发生。InkPicture控件601可以进一步发送前面关于InkOverlay对象501所讨论的任何或所有事件。
电子墨迹的覆盖
参照图7,可以产生或者提供一份文档701。在图7的说明性实施例中的文档是一份文本文档。然而,术语文档应当在此宽泛地解释成任何其它类型的文档,如(但不限于)字处理文档(如使用Microsoft WORD所产生的)、图像文档、图形文档、文本加图形文档、扫描的纸文档、电子表格文档、照片以及/或具有多个数据域的表单。在这里用来描述本发明时,术语“文档”还在其范围内包括某种软件应用。可以定义一个InkOverlay对象和/或一个InkPicture控件,来创建在某些或所有文档701上放置的一个或多个涂墨表面(如窗口)。该窗口或其它涂墨表面最好是透明的(全透明的或半透明的),这样下面的文档701就是可见的。但是,某些或所有窗口也可以是不透明的,并/或可以具有某种背景图像和/或颜色(如通过使用说明性InkPicture控件的一个或多个说明性背景属性604)。在使用一幅背景图像时,该背景图像可以是该文档本身,以作为对在一份单独的文档上覆盖该窗口的一种替换。该窗口可以可选择地具有一条可以是不透明的或可见的边沿(在此说明性地图示成虚线)。当用户在屏幕上该窗口区域内用记录笔204书写时,墨迹数据从手写来搜集,并在该窗口中被渲染和显示成电子墨迹703。如此,就表现成手写墨迹被书写在该文档701上。墨迹数据还可以存储在某个对象中,如在墨迹对象中。还有,在渲染时和/或渲染开始时和/或墨迹渲染完成后,可以触发一个或多个事件(如描绘相关事件548)。
用户可以进一步以多种方式选择已渲染墨迹703的一部分和改变所选择的部分。当选择了墨迹703的至少一部分(如通过用记录笔204在所选择的部分画圈)时,可以存储对所选择部分的一个指涉(reference)。选择部分可以移动和/或调整尺寸,在这种情况下,在该选择移动或调整尺寸时,和/或在移动或调整尺寸开始时,和/或该选择完成移动或调整尺寸后,都可以触发一个或多个事件,如事件549。可以进一步删除某些或所有墨迹703(如一个或多个笔划)。例如,用户和/或某个应用可以请求删除墨迹703的至少一部分,而在墨迹删除时,和/或墨迹开始删除时,和/或墨迹删除后,可以触发一个或多个事件,如事件551。
考虑到上面这些,应用开发者可以对InkOverlay对象和/或InkPicture控件内的墨迹进行程序化的访问(即能够直接更改内部结构,而不必需通过用户输入或控件API)。开发者和/或用户可以进一步能够更改对墨迹的选择和/或多种其它的属性。而后InkOverlay对象可以管理建立书写板环境、侦听数字化仪事件以及/或搜集并根据其当前模式解释墨划的内部细节。
举例来说,开发者可以容易地访问与新笔划相关联的事件,并可以通过从该新笔划获取位置元数据来将该新笔划的位置和在下面的文档701中的文本和/或对象相比较。这样,通过访问在此所描述的多种时间与方法,应用开发者可以对某个应用添加数据结构,以实现将墨迹映射到应用数据。这就可以使(例如)姿态和/或由用户和/或某个应用所发出其它命令能通过InkOverlay对象来更改下面的文档701。例如,如在图7中所示出的那样,在文档701中文本的一部分被以墨迹画圈,而一个很大的“B”被描画在该圆圈中。这可以解释成一个命令,将在画圈的文档701中的文本更改成粗体的文本。或者,可以如在图7中所示出的那样,用一个姿态和/或其它命令删除和/或插入一个字词(如删除在下面文档701中的字词“defence”并以新插入的字词“defense”代替)。在图8中示出了这些姿态的结果。
开发者可以进一步容易地配置他或她的应用,以在下面文档701中的下面的文本和/或对象移动时,在InkOverlay对象中重新排列墨迹。这可以(例如)通过在InkOverlay对象窗口中定位墨划并移动这些墨划和/或调整这些墨划的尺寸来达成。
开发者可以通过侦听在此所描述的多种事件,进一步容易地扩展InkOverlay对象的本身的编辑功能,以包括多种概念(如增亮)。这可以(例如)通过重载缺省的描画特征属性来达成。开发者还可以添加功能,如可选择的只读笔划(通过有选择地拒绝对特定笔划的用户操作),以及解析(通过将笔划送入某个识别器)和/或自然的用户姿态如用记录笔204的后退来擦除(通过侦听“新光标”事件并切换InkOverlay控件的模式)。
还有,在任一时间可以在文档701上放置多于一个的InkOverlay对象和/或InkPicture控件,而这多个对象和/或控件可以分层。参照图9,可以实例化(例如)第二个InkOverlay对象,并可以具有有第二条可选边沿901的第二个窗口。同一用户或另一用户可以在第二个InkOverlay对象窗口上书写墨迹902,而相关联的墨迹数据可以存储在InkOverlay对象中,并/或在第二个InkOverlay对象的窗口中渲染。可替换的是,用户可以将墨迹书写到第一个InkOverlay对象窗口中某个第一个和第二个窗口重叠的位置,而该墨迹可以被发送给第二个窗口。
虽然通过示例方式示出了在此所描述的具体表现本发明多个方面的示例性系统和方法,仍将明白(当然)本发明并不限于这些实施例。本领域的普通技术人员可能进行修改(特别是按照前面的教导)。举例而言,前述实施例的每个组件都可以单独使用,或与其它实施例的组件结合使用。尽管本发明已用所附的权利要求来定义,但这些权利要求是示例性的,而本发明需要以任何组合或子集合来包括在此所描述的组件和步骤。因此,对定义本发明存在任意数量的可替换组合,结合了来自本说明(包括以多种组合或子集合的描述、权利要求和附图)的一个或多个组件。按照本发明,对本领域的普通技术人员而言,很显然可以利用本发明各方面的可替换组合(单独或结合在此所定义的一个或多个组件或步骤),作为对本发明的修改或改动,或作为本发明的一部分。须理解,在此所包含的对本发明的书面描述能覆盖所有这样的修改和改动。还有,应当认识到,尽管在此提供了对象和其它API组件的多个名称,但这样的名称仅仅是说明性的,任何名称都可以不背离本发明的范围而使用。

Claims (13)

1、一种用于在一篇文档上覆盖墨迹的方法,其特征在于,该方法包含步骤:
在该文档上产生一个透明的涂墨表面;
在该涂墨表面中搜集墨迹数据;以及
在该涂墨表面中将该墨迹数据渲染成已渲染的墨迹。
2、如权利要求1所述的方法,其特征在于,包括将该墨迹数据存储成一个对象的步骤。
3、如权利要求1所述的方法,其特征在于,该涂墨表面是半透明的。
4、如权利要求1所述的方法,其特征在于,该涂墨表面具有一条不透明的边沿。
5、如权利要求1所述的方法,其特征在于,该文档包含一篇文本文档。
6、如权利要求1所述的方法,其特征在于,该文档包含一篇MicrosoftWORD文档。
7、如权利要求1所述的方法,其特征在于,还包括步骤:
在渲染步骤中产生第一个事件;以及
在渲染步骤完成后产生第二个事件。
8、如权利要求1所述的方法,其特征在于,还包括步骤:
接收一个删除该所渲染墨迹的至少一部分的请求;
回应于该请求产生第一个事件;
删除该所渲染墨迹的该至少一部分;以及
在删除步骤完成后产生第二个事件。
9、如权利要求1所述的方法,其特征在于,还包括步骤:
接收一个选择该所渲染墨迹的至少一部分的请求;
选择该所渲染墨迹的该至少一部分;以及
存储对该墨迹的该至少一部分的一个指涉(reference)。
10、如权利要求1所述的方法,其特征在于,还包括步骤:
选择该所渲染墨迹的至少一部分;
接收一个改变该所渲染墨迹的该至少一部分的请求;
回应于该请求产生第一个事件;
改变该所渲染墨迹的该至少一部分;以及
在改变步骤完成后产生第二个事件。
11、如权利要求10所述的方法,其特征在于,所改变的步骤包括改变所选择的该所渲染墨迹的该至少一部分的数量。
12、如权利要求10所述的方法,其特征在于,所改变的步骤包括将该所渲染墨迹的该至少一部分改变成该所渲染墨迹的另外至少一部分。
13、一种用于在一篇文档上覆盖墨迹的方法,其特征在于,该方法包含步骤:
产生一个窗口,该窗口具有一个包含该文档的至少一部分的背景;
在该窗口中搜集墨迹数据;以及
在该窗口中将该墨迹数据渲染成已渲染的墨迹。
CNB031314449A 2002-05-14 2003-05-14 在文档上覆盖电子墨迹的方法 Expired - Fee Related CN1318940C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US37978102P 2002-05-14 2002-05-14
US37974902P 2002-05-14 2002-05-14
US60/379,749 2002-05-14
US60/379,781 2002-05-14
US10/183,987 US8166388B2 (en) 2002-05-14 2002-06-28 Overlaying electronic ink
US10/183,987 2002-06-28

Publications (2)

Publication Number Publication Date
CN1461986A true CN1461986A (zh) 2003-12-17
CN1318940C CN1318940C (zh) 2007-05-30

Family

ID=29273574

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031314449A Expired - Fee Related CN1318940C (zh) 2002-05-14 2003-05-14 在文档上覆盖电子墨迹的方法

Country Status (8)

Country Link
US (1) US8166388B2 (zh)
EP (1) EP1363231B1 (zh)
JP (1) JP2004030632A (zh)
CN (1) CN1318940C (zh)
AT (1) ATE365950T1 (zh)
DE (1) DE60314563T2 (zh)
HK (1) HK1061586A1 (zh)
TW (1) TWI291114B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100538608C (zh) * 2004-02-10 2009-09-09 微软公司 结合数字涂墨使用动态数字缩放界面的系统和方法
WO2011091739A1 (zh) * 2010-02-01 2011-08-04 深圳市同洲电子股份有限公司 一种焦点元素显示方法、装置及数字电视接收终端
CN103092504A (zh) * 2011-10-26 2013-05-08 Lg电子株式会社 移动终端及其控制方法
CN104391834A (zh) * 2014-12-11 2015-03-04 成都明日星辰科技有限公司 一种对电子书内容进行注释的方法

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019845A1 (en) 2000-06-16 2002-02-14 Hariton Nicholas T. Method and system for distributed scripting of presentations
US7397949B2 (en) * 2000-06-21 2008-07-08 Microsoft Corporation Serial storage of ink and its properties
US7634729B2 (en) * 2002-11-10 2009-12-15 Microsoft Corporation Handwritten file names
US7284200B2 (en) * 2002-11-10 2007-10-16 Microsoft Corporation Organization of handwritten notes using handwritten titles
US20040117724A1 (en) * 2002-12-03 2004-06-17 Microsoft Corporation Extensible schema for ink
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US20060064643A1 (en) 2004-09-14 2006-03-23 Hariton Nicholas T Distributed scripting for presentations with touch screen displays
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
JP2007156219A (ja) * 2005-12-07 2007-06-21 Seiko Epson Corp 情報表示システム、情報表示装置および位置指示装置
US7818660B2 (en) 2006-01-29 2010-10-19 Litera Technology Llc Method of compound document comparison
US7774722B2 (en) * 2006-01-31 2010-08-10 Microsoft Corporation Creation and manipulation of canvases based on ink strokes
EP2013779A4 (en) * 2006-04-14 2012-07-18 Vertafore Inc METHOD, SYSTEM AND COMPUTER-READABLE MEDIUM FOR PROVIDING PERSONALIZED CLASSIFICATION OF DOCUMENTS IN A FILE MANAGEMENT SYSTEM
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20090219250A1 (en) * 2008-02-29 2009-09-03 Ure Michael J Interface with and communication between mobile electronic devices
KR101383716B1 (ko) * 2007-08-17 2014-04-10 삼성디스플레이 주식회사 전기 영동 표시 장치의 구동 장치 및 구동 방법
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US7930642B1 (en) * 2008-03-20 2011-04-19 Intuit Inc. System and method for interacting with hard copy documents
US8752141B2 (en) * 2008-06-27 2014-06-10 John Nicholas Methods for presenting and determining the efficacy of progressive pictorial and motion-based CAPTCHAs
US10685177B2 (en) 2009-01-07 2020-06-16 Litera Corporation System and method for comparing digital data in spreadsheets or database tables
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8136031B2 (en) 2009-03-17 2012-03-13 Litera Technologies, LLC Comparing the content of tables containing merged or split cells
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9323807B2 (en) * 2010-11-03 2016-04-26 Sap Se Graphical manipulation of data objects
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9529486B2 (en) * 2012-03-29 2016-12-27 FiftyThree, Inc. Methods and apparatus for providing a digital illustration system
US9280524B2 (en) * 2012-06-28 2016-03-08 Texas Instruments Incorporated Combining a handwritten marking with a rendered symbol to modify the rendered symbol
KR101899816B1 (ko) * 2012-07-26 2018-09-20 엘지전자 주식회사 단말 장치 및 이의 필기 공유 방법
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9696810B2 (en) 2013-06-11 2017-07-04 Microsoft Technology Licensing, Llc Managing ink content in structured formats
JP6201488B2 (ja) * 2013-07-29 2017-09-27 富士通株式会社 選択文字特定プログラム、選択文字特定方法、及び、選択文字特定装置
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
KR102266869B1 (ko) 2014-04-03 2021-06-21 삼성전자주식회사 전자 장치 및 전자 장치의 디스플레이 방법
US10270819B2 (en) 2014-05-14 2019-04-23 Microsoft Technology Licensing, Llc System and method providing collaborative interaction
US9552473B2 (en) 2014-05-14 2017-01-24 Microsoft Technology Licensing, Llc Claiming data from a virtual whiteboard
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
KR102393295B1 (ko) 2014-09-18 2022-05-02 삼성전자주식회사 컨텐트를 스타일링하는 장치 및 방법
JP2016071819A (ja) * 2014-10-02 2016-05-09 株式会社東芝 電子機器および方法
US10089291B2 (en) * 2015-02-27 2018-10-02 Microsoft Technology Licensing, Llc Ink stroke editing and manipulation
US9950542B2 (en) 2015-03-12 2018-04-24 Microsoft Technology Licensing, Llc Processing digital ink input subject to monitoring and intervention by an application program
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US20170351650A1 (en) * 2016-06-01 2017-12-07 Cisco Technology, Inc. Digital conversation annotation
US10699746B2 (en) 2017-05-02 2020-06-30 Microsoft Technology Licensing, Llc Control video playback speed based on user interaction
CN111524211B (zh) * 2020-04-17 2024-01-23 杭州海康威视数字技术股份有限公司 笔迹擦除方法、装置及设备

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002799A (en) 1986-07-25 1999-12-14 Ast Research, Inc. Handwritten keyboardless entry computer system
US5125039A (en) 1989-06-16 1992-06-23 Hawkins Jeffrey C Object recognition system
US5309555A (en) 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
US5347295A (en) 1990-10-31 1994-09-13 Go Corporation Control of a computer through a position-sensed stylus
US5220649A (en) 1991-03-20 1993-06-15 Forcier Mitchell D Script/binary-encoded-character processing method and system with moving space insertion mode
DE69333096T2 (de) 1992-04-15 2004-02-12 Xerox Corp. Vorrichtungen und Verfahren zum graphischen Zeichnen und Ausgabe
US5583543A (en) * 1992-11-05 1996-12-10 Sharp Kabushiki Kaisha Pen input processing apparatus
US5404442A (en) 1992-11-30 1995-04-04 Apple Computer, Inc. Visible clipboard for graphical computer environments
JPH06310472A (ja) 1993-04-21 1994-11-04 Rohm Co Ltd 透明基板上の薄膜段差の平坦化法
US5528743A (en) * 1993-05-27 1996-06-18 Apple Computer, Inc. Method and apparatus for inserting text on a pen-based computer system
US5710831A (en) * 1993-07-30 1998-01-20 Apple Computer, Inc. Method for correcting handwriting on a pen-based computer
US5367453A (en) 1993-08-02 1994-11-22 Apple Computer, Inc. Method and apparatus for correcting words
US5500937A (en) * 1993-09-08 1996-03-19 Apple Computer, Inc. Method and apparatus for editing an inked object while simultaneously displaying its recognized object
US5749070A (en) 1993-09-09 1998-05-05 Apple Computer, Inc. Multi-representational data structure for recognition in computer systems
US5546538A (en) * 1993-12-14 1996-08-13 Intel Corporation System for processing handwriting written by user of portable computer by server or processing by the computer when the computer no longer communicate with server
US5534893A (en) * 1993-12-15 1996-07-09 Apple Computer, Inc. Method and apparatus for using stylus-tablet input in a computer system
US5561446A (en) 1994-01-28 1996-10-01 Montlick; Terry F. Method and apparatus for wireless remote information retrieval and pen-based data entry
JPH10510639A (ja) 1994-07-01 1998-10-13 パーム コンピューティング,インコーポレーテッド マルチペンストローク文字セット及び手書文書認識システム
JPH0816313A (ja) 1994-07-04 1996-01-19 Sanyo Electric Co Ltd 手書き入力方法及び装置
US5680480A (en) 1994-07-29 1997-10-21 Apple Computer, Inc. Method and apparatus for training a recognizer
JPH0869351A (ja) 1994-08-26 1996-03-12 Toshiba Corp ペン入力装置及びペン入力方法
US5768607A (en) * 1994-09-30 1998-06-16 Intel Corporation Method and apparatus for freehand annotation and drawings incorporating sound and for compressing and synchronizing sound
DE69422406T2 (de) 1994-10-28 2000-05-04 Hewlett Packard Co Verfahren zum Durchführen eines Vergleichs von Datenketten
JPH08305821A (ja) 1995-04-28 1996-11-22 Canon Inc データ処理方法とその装置
EP0741379A1 (en) * 1995-05-04 1996-11-06 Winbond Electronics Corporation Scaled video output overlaid onto a computer graphics output
US5761328A (en) 1995-05-22 1998-06-02 Solberg Creations, Inc. Computer automated system and method for converting source-documents bearing alphanumeric text relating to survey measurements
US5682439A (en) 1995-08-07 1997-10-28 Apple Computer, Inc. Boxed input correction system and method for pen based computer systems
JPH09160914A (ja) 1995-12-08 1997-06-20 Matsushita Electric Ind Co Ltd ペン入力装置
US5917493A (en) 1996-04-17 1999-06-29 Hewlett-Packard Company Method and apparatus for randomly generating information for subsequent correlating
JPH09305698A (ja) 1996-05-10 1997-11-28 Sharp Corp 文字入力表示装置
US5850480A (en) 1996-05-30 1998-12-15 Scan-Optics, Inc. OCR error correction methods and apparatus utilizing contextual comparison
US5862256A (en) 1996-06-14 1999-01-19 International Business Machines Corporation Distinguishing gestures from handwriting in a pen based computer by size discrimination
JP3839877B2 (ja) 1996-07-05 2006-11-01 キヤノン株式会社 手書きパターン処理装置及び手書きパターン処理方法
US6128007A (en) * 1996-07-29 2000-10-03 Motorola, Inc. Method and apparatus for multi-mode handwritten input and hand directed control of a computing device
JPH1069479A (ja) 1996-08-29 1998-03-10 Sharp Corp 文書作成方法および文書作成プログラムを記録した媒体
US5953523A (en) * 1996-10-28 1999-09-14 International Business Machines Corporation Method and apparatus for creating "smart forms "
US5889888A (en) * 1996-12-05 1999-03-30 3Com Corporation Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
JPH1186015A (ja) 1997-09-09 1999-03-30 Canon Inc 情報処理方法及び装置及びその記憶媒体
JPH11143986A (ja) 1997-10-17 1999-05-28 Internatl Business Mach Corp <Ibm> ビットマップイメージの処理方法及び処理装置、ビットマップイメージの処理を行うイメージ処理プログラムを格納した記憶媒体
US6000946A (en) * 1998-03-09 1999-12-14 Hewlett-Packard Company Collaborative drawing device
US6584479B2 (en) * 1998-06-17 2003-06-24 Xerox Corporation Overlay presentation of textual and graphical annotations
US6563494B1 (en) 1998-10-08 2003-05-13 International Business Machines Corporation Cut and paste pen for pervasive computing devices
US6389435B1 (en) * 1999-02-05 2002-05-14 Fuji Xerox, Co, Ltd. Method and system for copying a freeform digital ink mark on an object to a related object
US6565611B1 (en) 1999-02-26 2003-05-20 Xerox Corporation Automatic index creation for handwritten digital ink notes
US20010040551A1 (en) * 1999-07-29 2001-11-15 Interlink Electronics, Inc. Hand-held remote computer input peripheral with touch pad used for cursor control and text entry on a separate display
US6909439B1 (en) 1999-08-26 2005-06-21 International Business Machines Corporation Method and apparatus for maximizing efficiency of small display in a data processing system
US6813396B1 (en) 2000-02-16 2004-11-02 Telefonatiebolaget L.M. Ericsson (Publ) Method for sharing information between electronic reading devices
US6924791B1 (en) 2000-03-09 2005-08-02 Palmone, Inc. Method and apparatus for automatic power-up and power-down of a computer system based on the positions of an associated stylus and/or hinge
JP2001266071A (ja) 2000-03-21 2001-09-28 Fujitsu Ltd 手書き文字入力装置と方法及びそれを実現するためのプログラムを記録した記録媒体
US6355889B1 (en) 2000-06-28 2002-03-12 International Business Machines Corporation Method and apparatus for linking electronic ink to electronic personal information systems
US6961029B1 (en) 2000-11-08 2005-11-01 Palm, Inc. Pixel border for improved viewability of a display device
GB2372339A (en) * 2001-01-17 2002-08-21 Priorlease Ltd An arrangement for applying handwriting to an HTML document
US6741749B2 (en) 2001-01-24 2004-05-25 Advanced Digital Systems, Inc. System, device, computer program product, and method for representing a plurality of electronic ink data points
US6661409B2 (en) 2001-08-22 2003-12-09 Motorola, Inc. Automatically scrolling handwritten input user interface for personal digital assistants and the like
US6903751B2 (en) 2002-03-22 2005-06-07 Xerox Corporation System and method for editing electronic images
US7120872B2 (en) * 2002-03-25 2006-10-10 Microsoft Corporation Organizing, editing, and rendering digital ink
US7158675B2 (en) 2002-05-14 2007-01-02 Microsoft Corporation Interfacing with ink

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100538608C (zh) * 2004-02-10 2009-09-09 微软公司 结合数字涂墨使用动态数字缩放界面的系统和方法
WO2011091739A1 (zh) * 2010-02-01 2011-08-04 深圳市同洲电子股份有限公司 一种焦点元素显示方法、装置及数字电视接收终端
CN103092504A (zh) * 2011-10-26 2013-05-08 Lg电子株式会社 移动终端及其控制方法
CN103092504B (zh) * 2011-10-26 2017-11-14 Lg电子株式会社 移动终端及其控制方法
CN104391834A (zh) * 2014-12-11 2015-03-04 成都明日星辰科技有限公司 一种对电子书内容进行注释的方法

Also Published As

Publication number Publication date
US20030217336A1 (en) 2003-11-20
HK1061586A1 (en) 2004-09-24
EP1363231B1 (en) 2007-06-27
EP1363231A3 (en) 2004-06-30
TW200406696A (en) 2004-05-01
CN1318940C (zh) 2007-05-30
EP1363231A2 (en) 2003-11-19
TWI291114B (en) 2007-12-11
ATE365950T1 (de) 2007-07-15
DE60314563D1 (de) 2007-08-09
DE60314563T2 (de) 2007-10-25
JP2004030632A (ja) 2004-01-29
US8166388B2 (en) 2012-04-24

Similar Documents

Publication Publication Date Title
CN1318940C (zh) 在文档上覆盖电子墨迹的方法
US7715630B2 (en) Interfacing with ink
JP4637455B2 (ja) ユーザインタフェースの利用方法並びにコンピュータで使用可能な媒体を含む製品
US7870501B2 (en) Method for hollow selection feedback
US7925987B2 (en) Entry and editing of electronic ink
US11550993B2 (en) Ink experience for images
CA2124606C (en) Method and apparatus for producing a composite second image in the spatial context of a first image
US5467441A (en) Method for operating on objects in a first image using an object-based model data structure to produce a second contextual image having added, replaced or deleted objects
US6965384B2 (en) In-situ digital inking for applications
US20030214553A1 (en) Ink regions in an overlay control
CN1609800A (zh) 电子可再粘便条
US20070157076A1 (en) Annotation detection and anchoring on ink notes
CN1517846A (zh) 笔尖语言和语言调色板
US7428711B2 (en) Glow highlighting as an ink attribute
KR20040067818A (ko) 잉크 분할기 및 연관된 어플리케이션 프로그램 인터페이스
CN1848081A (zh) 用于操作和查看数字文档的用户界面系统和方法
US20110194139A1 (en) Printing Structured Documents
US7284200B2 (en) Organization of handwritten notes using handwritten titles
RU2365979C2 (ru) Ввод и воспроизведение электронных чернил
KR20010087798A (ko) 인터넷 웹페이지 상에서 이미지에 포함된 텍스트 자료를복사 및 붙여넣기하는 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1061586

Country of ref document: HK

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070530

Termination date: 20200514

CF01 Termination of patent right due to non-payment of annual fee