CN112424738A - 在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质 - Google Patents
在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质 Download PDFInfo
- Publication number
- CN112424738A CN112424738A CN201980047465.3A CN201980047465A CN112424738A CN 112424738 A CN112424738 A CN 112424738A CN 201980047465 A CN201980047465 A CN 201980047465A CN 112424738 A CN112424738 A CN 112424738A
- Authority
- CN
- China
- Prior art keywords
- computing device
- transparent layer
- local computing
- collaborative workspace
- image portion
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000001902 propagating effect Effects 0.000 title claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 20
- 238000003780 insertion Methods 0.000 abstract description 2
- 230000037431 insertion Effects 0.000 abstract description 2
- 230000009471 action Effects 0.000 description 13
- 230000006854 communication Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 241000699666 Mus <mouse, genus> Species 0.000 description 11
- 241001422033 Thestylus Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000010813 municipal solid waste Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L65/4015—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04804—Transparency, e.g. transparent or translucent windows
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质,包括:传输托管在服务器上并包括图像的协作工作空间的表示;检测选择图像的图像部分的用户输入,所述用户输入对应于坐标;将所述坐标传输到透明层,所述透明层包括被配置为与所述一个或多个操作系统或应用接口的应用编程接口。至少部分地基于所述坐标捕获所述图像部分,检测第二用户输入以将所述选定图像部分拖动到位置,并将多个命令传输到所述服务器,所述多个命令经配置以致使从所述协作工作空间移除所述图像且致使至少部分地基于所述位置将所述图像部分插入到所述协作工作空间中。
Description
背景技术
操作系统和在操作系统内执行的应用经常使用外部硬件设备,以允许用户向程序提供输入并向用户提供输出。外部硬件设备的常见示例包括键盘、计算机鼠标、麦克风和外部扬声器。这些外部硬件设备通过使用驱动程序与操作系统的接口,驱动程序是被配置为在特定硬件设备使用的硬件命令与操作系统之间的接口连接的专用软件程序。
有时会将应用设计为与某些硬件设备的接口。例如,语音转文本的文字处理应用可以设计为与包括麦克风的音频耳机的接口。在这种情况下,必须将应用特别配置为接收语音命令,执行语音识别,将已识别的单词转换为文本内容并将该文本内容输出到文档中。这一功能将典型地被包含于应用的应用编程接口(API)中,所述API是一组预定义的在多种软件组件之间通信的方法。在语音识别应用的示例中,API可以包括在应用和驱动程序软件之间的接口,该驱动程序负责与硬件设备(麦克风)本身接口。
使用专用硬件设备的现有软件的一个问题是,必须对应用或操作系统软件本身进行定制和专门设计才能使用硬件设备。这种定制意味着硬件设备不能超出应用为其定义的范围,并且不能用于超出原先被设计的使用范围之外的特定应用的上下文中。例如,语音转文本文字处理应用的用户无法使用语音命令来操控操作系统中的其他应用或其他组件,除非这些其他应用或操作系统经过专门设计以使用通过麦克风接收到的语音命令。
图1示出了使用耦合的硬件设备进行用户输入的系统的现有结构的示例。图1的操作系统100A包括执行应用101A和102A,所述执行应用101A和102A分别具有自己的API,101B和102B。操作系统100A也具有自己的API 100B以及被配置为与硬件设备100D,101D和102D接口的专用驱动程序100C,101C和102C。
如图1所示,应用API 101B被配置为与驱动程序101C接口,所述驱动程序101C与硬件设备101D接口。类似地,应用API 102B被配置为与驱动程序102C接口,所述驱动程序102C与硬件设备102D接口。在操作系统层面,操作系统API 100B被配置为与驱动程序100C接口,所述驱动程序100C与硬件设备100D接口。
图1所示系统的体系结构限制了用户使用某些应用或操作系统环境之外的硬件设备的能力。例如,用户不能使用硬件设备101D以向应用102A提供输入,以及不能使用硬件设备102D以向应用101A或操作系统100A提供输入。
因此,需要改进硬件—软件接口,以允许在多种软件环境中使用硬件设备。
附图说明
图1示出了使用耦合的硬件设备进行用户输入的系统的现有结构的示例。
图2示出了根据示例性实施例的使用通用硬件—软件接口的系统结构。
图3示出了根据示例性实施例的使用通用硬件—软件接口的实施流程图。
图4示出了根据示例性实施例的确定用户输入的流程图,当由一个或多个硬件设备捕获的信息包括一个或多个图像时,该流程图至少部分地基于由一个或多个通信耦合至系统的硬件设备捕获的信息来确定用户输入。
图5A示出根据示例性实施例的对象识别的示例。
图5B示出根据示例性实施例的确定输入位置坐标的示例。
图6示出了根据示例性实施例的当捕获的信息是声音信息时,至少部分地基于通信地耦合至系统的一个或多个硬件设备捕获的信息来确定用户输入的流程图。
图7示出了根据示例性实施例的可以是透明层的一部分的工具界面。
图8示出了根据示例性实施例的可以是系统一部分的触控笔的示例。
图9示出了根据示例性实施例的用于识别与用户输入相对应的上下文的流程图。
图10示出了根据示例性实施例的使用输入坐标来确定上下文的示例。
图11示出了根据示例性实施例的用于将用户输入转换为透明层命令的流程图。
图12A示出了根据示例性实施例的当切换为选择模式时接收输入坐标的示例。
图12B示出了根据示例性实施例的当切换为指向模式时接收输入坐标的示例。
图12C示出了根据示例性实施例的当切换为绘制模式时接收输入坐标的示例。
图13示出了根据示例性实施例的基于在输入语音数据中识别的一个或多个单词确定的透明层命令的示例。
图14示出了根据示例性实施例的基于在输入语音数据中识别的一个或多个单词确定的透明层命令的另一示例。
图15示出了根据示例性实施例的用于在透明层上执行一个或多个透明层命令的流程图。
图16示出了根据示例性实施例的用于添加与用户输入相对应的新命令的示例界面。
图17示出了根据示例性实施例的绘制界面和绘制模式的各种组件和选项。
图18示出了根据示例性实施例的用于摄像机硬件设备的校准和设置接口,该摄像机和硬件设备用于识别对象并允许用户使用触摸和手势来提供输入。
图19示出了根据示例性实施例的通用设置界面,其允许用户定制界面的各个方面,切换输入模式以及进行其他改变。
图20示出了根据示例性实施例的用于通过网络协作工作空间中的网络套接字连接来传播裁剪图像的流程图。
图21A示出了根据示例性实施例的用于托管和传输协作工作空间的网络架构。
图21B示出了根据示例性实施例的用于将编辑传播到网络内的协作工作空间的过程。
图22示出了根据示例性实施例的协作工作空间的多个表示。
图23A-23C示出了根据示例性实施例的裁剪输入检测的示例。
图24示出了根据示例性实施例的用于将坐标传输到透明层并捕获图像部分的处理流程的示例。
图25示出了根据示例性实施例的用户将图像部分拖动到协作工作空间内的位置的示例。
图26示出了根据示例性实施例的用于向托管在服务器上的协作工作空间传输多个命令的流程图。
图27A-27B示出了根据示例性实施例的用于针对两个不同上下文向服务器托管的协作工作空间传输多个命令的流程图。
图28A-28C示出了根据示例性实施例的用户将图像部分拖至协作工作空间的编辑界面以及将图像部分拖至编辑界面的结果的示例。
图29A-29E示出了根据示例性实施例的用户将图像部分拖动到协作工作空间的工具栏界面以及将图像部分拖动到工具栏界面的结果的示例。
图30示出了被配置为执行所公开的方法的示例性计算环境。
具体实施方式
虽然本文通过实例和实施例来描述方法,装置和计算机可读介质,但所属领域的技术人员认识到用于实施通用硬件—软件接口的方法,装置和计算机可读介质不限于所描述的实施例或图示。应当理解,附图和说明书不旨在限于所公开的特定形式。相反,其意图是涵盖落入所附权利要求的精神和范围内的所有修改、等同形式和替代形式。本文使用的任何标题仅用于组织目的,并不意味着限制说明书或权利要求书的范围。如本文所用的词语“能”以允许的意义(即,意味着有可能)而不是强制的意义(即,必须)使用。类似地,词语“包括,包含,含有”是指包括但不限于。
申请人揭露了一种方法,装置和计算机可读介质,其解决了与用于硬件设备的先前硬件—软件接口相关联的问题。特别地,申请人已经开发了通用的硬件—软件接口,该接口允许用户在各种软件环境中利用通信耦合的硬件设备。所公开的实现方式消除了对应用或操作系统进行定制设计以通过使用专用虚拟驱动程序和相应的透明层与特定硬件设备对接的需求,这将在下面更详细地描述。
图2示出了根据示例性实施例的利用通用硬件—软件接口的系统的体系结构。如图2中所示,操作系统200A包括与虚拟驱动程序204通信的透明层203。如将在下面更详细地解释的,透明层203是被配置为在虚拟驱动程序与操作系统和/或在操作系统上执行的应用之间进行接口的API。在该示例中,透明层203在应用虚拟驱动程序204和应用201A的API201B,应用202A的API 202B和操作系统200A的操作系统API 200B之间进行接口连接。
透明层203可以是在操作系统上运行的软件过程的一部分,并且可以具有其自己的用户界面(UI)元素,包括叠加在底层用户界面上的透明UI和/或用户能够与之接口的可视UI元素。
虚拟驱动程序204被配置为仿真驱动程序205A和205B,它们分别与硬件设备206A和206B接口。虚拟驱动程序可以接收用户输入,该用户输入例如以语音命令,在用户界面上进行的选择和/或用户在触摸屏前面做出的手势的形式指示虚拟驱动程序在哪个虚拟驱动程序上进行仿真。例如,每个连接的硬件设备可以在“监听”模式下运行,并且虚拟驱动程序204中的每个仿真驱动程序可以配置为检测初始化信号,该初始化信号用作虚拟驱动程序切换到特定驱动程序的信号仿真模式。例如,说“开始语音命令”的用户可以激活与麦克风相对应的驱动程序以接收新的语音命令。类似地,做出特定手势的用户可以激活与网络摄像机相对应的驱动程序,以接收手势输入或触摸输入。
虚拟驱动程序还可以被配置为与本身与硬件设备206C通信的本地驱动程序(例如本地驱动程序205C)接口。在一示例中,硬件设备206C可以是操作系统本地支持的标准输入设备,例如键盘或鼠标。
图2所示的系统允许实现通用的硬件—软件接口,在该接口中,用户可以在诸如特定应用或操作系统之类的各种环境下利用任何耦合的硬件设备,而无需应用或操作系统。要自定义与硬件设备连接的操作系统。
例如,硬件设备206A可以捕获信息,然后该信息由仿真驱动程序205A的虚拟驱动程序204接收。虚拟驱动程序204可以基于捕获的信息来确定用户输入。例如,如果信息是用户移动他们的手的一系列图像,则虚拟驱动程序可以确定用户已经执行了手势。
基于所识别的上下文(诸如特定应用或操作系统),可以将用户输入转换为透明层命令,并传输至透明层203以供执行。透明层命令可以在所识别的上下文中包括本机命令。例如,如果所识别的上下文是应用201A,则本机命令将采用与应用201A的应用API 201B兼容的格式。然后,可以将透明层命令的执行配置为导致在识别的上下文中执行一个或多个本机命令。这是通过透明层203与在操作系统200A以及操作系统API 200B上执行的应用的每个API接口来实现的。对于例如,如果本机命令是操作系统命令,如启动新程序的命令,然后,透明层203可以提供本机命令至操作系统API 200B以供执行。
如图2所示,在所示的所有组件之间存在双向通信。这意味着,例如,在透明层203中执行透明层命令可以导致将信息传输到虚拟驱动程序204并且传输到所连接的硬件设备之一上。例如,在语音命令被识别为输入,转换为包括本机命令的透明层命令并由透明层执行(导致在所识别的上下文中执行本机命令)之后,可以从终端传输信号。透明层(通过虚拟驱动程序)传递给扬声器,以传输所接收的声音输出"命令"。
当然,图2所示的体系结构仅出于解释的目的,并且应当理解,执行的应用的数量,所连接的硬件设备的数量和类型,驱动程序的数量以及仿真驱动程序的数量可以变化。
图3示出了根据示例性实施例的用于实现通用硬件—软件接口的流程图。
在步骤301,至少部分地基于由通信地耦合至系统的一个或多个硬件设备捕获的信息来确定用户输入。如本文所使用的,该系统可以指执行该方法的步骤的一个或多个计算设备,包括一个或多个处理器以及执行该方法的步骤的一个或多个存储器的装置或任何其他计算系统。
用户输入可以由在系统上执行的虚拟驱动程序确定。如前所述,虚拟驱动程序可以在仿真模式下运行,在该模式下虚拟驱动程序正在仿真其他硬件驱动程序,从而从硬件设备接收捕获的信息,或者可以选择从一个或多个其他硬件驱动程序接收捕获的信息,这些硬件驱动程序被配置为与特定的硬件设备接口。
可以利用各种硬件设备,例如照相机、摄像机、麦克风、具有双向通信的头戴式耳机、鼠标、触摸板、触控板、控制器、游戏板、操纵杆、触摸屏、包括加速度计和/或倾斜传感器的运动捕捉设备、遥控器、触控笔或这些设备的任意组合。当然,仅以示例的方式提供了该硬件设备列表,并且可以利用可以用于检测语音、图像、视频或触摸信息的任何硬件设备。
硬件设备与系统之间的通信耦合可以采取多种形式。例如,硬件设备可以经由无线网络、蓝牙协议、射频、红外信号和/或通过诸如通用串行总线(USB)连接的物理连接与系统通信。该通信还可以包括无线和有线通信。例如,硬件设备可以包括两个组件,其中一个组件以无线方式(例如通过蓝牙)将信号传输到第二个组件,该组件本身通过有线连接(例如USB)连接到系统。根据本文描述的系统,可以利用各种通信技术,并且这些示例并非旨在进行限制。
由一个或多个硬件设备捕获的信息可以是任何类型的信息,例如包括一个或多个图像的图像信息,视频的帧,声音信息和/或触摸信息。捕获的信息可以采用任何合适的格式,例如用于声音信息的.wav或.mp3文件,用于图像的.jpeg文件,用于触摸信息的数字坐标等。
本文中描述的技术可以允许任何显示设备在任何情况下有效地充当“触摸”屏幕设备,即使该显示设备不包括任何检测触摸信号或基于触摸的手势的硬件。这将在下面更详细地描述,并且可以通过分析由照相机或摄像机捕获的图像来完成。
图4示出了当由一个或多个硬件设备捕获的信息包括一个或多个图像时,至少部分地基于由一个或多个通信地耦合至系统的硬件设备捕获的信息来确定用户输入的流程图。
在步骤401,接收一个或多个图像。这些图像可以由硬件设备(例如相机或摄像机)捕获,并可以由虚拟驱动程序接收,如前所述。
在步骤402,识别一个或多个图像中的对象。该对象可以是例如用户的手,手指或其他身体部位。该对象还可以是专用设备,例如触控笔或钢笔或专用硬件设备,例如运动跟踪触控笔/遥控器,其可通信地耦合到系统,并且包含加速计和/或倾斜传感器。可以由虚拟驱动程序基于先前的训练来执行对象识别,例如通过使用该对象运行的校准例程。
图5A示出了根据示例性实施例的对象识别的示例。如图5A所示,图像501包括已经被识别为对象502的用户的手。识别算法当然可以被配置为识别不同的对象,例如手指。
回到图4,在步骤403中,确定被识别物体的一个或多个方位和一个或多个位置。这可以通过多种方式来实现。如果对象不是硬件设备,而是身体部分(例如手或手指),则可以使用相机的已知位置作为参考点,将对象映射到三维坐标系中,从而确定三维对象的坐标以及相对于X,Y和Z轴的各种角度。如果对象是硬件设备,并且包括运动跟踪硬件(例如加速度计和/或倾斜传感器),则可以将图像信息与加速度计和/或倾斜传感器指示的信息结合使用,以确定物体的位置和方向。
在步骤404,至少部分地基于所识别对象的一个或多个方位和一个或多个位置来确定用户输入。这可以包括至少部分地基于一个或多个方位和一个或多个位置来确定透明层的透明用户界面(UI)上的位置坐标。透明UI是透明层的一部分,并且被叠加在对应于操作系统和/或在操作系统上执行的任何应用的基本的用户界面上。
图5B示出了当对象是用户的手指时该步骤的示例。如图5B所示,显示设备503包括底层UI 506和叠加在底层UI 506上的透明UI 507。为清楚起见,透明UI 507以点阴影示出,但应理解,实际上透明UI是用户不可见的透明层。另外,透明UI 507被示为比底层UI 506略小,但是应当理解,实际上,透明UI将覆盖与底层UI相同的屏幕区域。
如图5B所示,对象(用户的手指)的位置和方向信息用于将线投影到显示设备503的平面上并确定交点505。相机捕获的图像信息504和照相机下方的显示设备503的已知位置可用于辅助该投影。如图5B所示,确定用户输入为交点505处的输入坐标。
如将在下面进一步讨论的,基于该输入生成的实际透明层命令可以基于用户设置和/或所识别的上下文。例如,该命令可以是指示应该选择和/或打开在点505的坐标处的对象的触摸命令。该命令还可以是指示应该将指针(例如鼠标指针)移动到点505的坐标的指向命令。此外,该命令可以是修改该位置的图形输出的编辑命令(例如注释界面或绘制元素)。
尽管图5B将识别出的物体502示出为与显示设备503处于一定距离,但是无论距离如何,都可以检测到触摸输入。例如,如果用户要物理触摸显示设备503,则上述技术仍将确定输入坐标。在那种情况下,对象502和交点之间的投影线将更短。
当然,触摸输入并不是可以从捕获的图像确定的唯一用户输入类型。至少部分地基于所识别对象的一个或多个方位和一个或多个位置来确定用户输入的步骤可以包括确定手势输入。特别地,可以分析跨多个图像的识别对象的位置和取向,以确定相应的手势,例如轻扫手势,捏合手势和/或任何已知或定制的手势。用户可以校准虚拟驱动程序以识别映射到特定上下文的自定义手势以及这些上下文中的命令。例如,用户可以创建一个映射到操作系统上下文的自定义手势,并导致执行启动特定应用的本机操作系统命令。
如前所述,在图3的步骤301中由一个或多个硬件设备捕获的信息还可以包括由麦克风捕获的声音信息。图6示出了用于当捕获的信息是声音信息时至少部分地基于由通信地耦合至系统的一个或多个硬件设备捕获的信息来确定用户输入的流程图。如下所述,对声音信息执行语音识别,以识别与用户输入相对应的一个或多个单词。
在步骤601,接收声音数据。如上所述,声音数据可以由诸如麦克风的硬件设备捕获并由虚拟驱动程序接收。在步骤602,可以将接收到的声音数据与声音字典进行比较。声音字典可以包括一个或多个已识别单词(例如命令单词或命令修饰符)的声音签名。在步骤603,基于比较,将声音数据中的一个或多个单词识别为用户输入。然后可以将识别出的一个或多个单词转换为透明层命令,并传递给透明层。
如前所述,可以至少部分地基于一个或多个设置或先前的用户输入来确定由虚拟驱动程序仿真的驱动程序,用户输入的预期类型以及基于用户输入生成的命令。
图7图示了也可以是透明层的一部分的工具界面701。与透明UI不同,工具界面701对用户可见,可用于在不同选项之间进行选择,这些选项会更改虚拟驱动程序的仿真模式,基于用户输入生成的本机命令或执行其他功能。
当用户输入为输入坐标时(例如基于用户用手或触控笔/遥控器触摸屏幕的坐标),按钮701A允许用户选择用于图形化修改用户界面的绘制工具的类型。各种绘制工具可以包括不同的画笔、颜色、笔、荧光笔等。这些工具可以导致图形的改变,包括样式、厚度、颜色等。
当接收到输入坐标作为用户输入时,按钮701B允许用户在选择,指向或绘制模式之间切换。在选择模式下,可以将输入坐标视为“触摸”,并导致在输入坐标处选择或打开对象。在指向模式下,可以将坐标作为指针(例如鼠标指针)位置进行处理,从而有效地允许用户仿真鼠标。在绘制模式下,可以将坐标作为更改用户界面的图形输出以在用户界面上呈现绘制或书写外观的位置进行处理。改变的性质可以取决于所选择的绘制工具,如参考按钮701A所讨论的。按钮701B还可以警告虚拟驱动程序期望图像输入和/或运动输入(如果使用了运动跟踪设备),并相应地模拟适当的驱动程序。
按钮701C警告虚拟驱动程序期望语音命令。这可以使虚拟驱动程序仿真与耦合的麦克风相对应的驱动程序,以接收语音输入并解析语音输入,如图6所示。
按钮701D打开启动器应用,该应用可以是透明层的一部分,并且可以用于启动操作系统内的应用或启动应用内的特定命令。启动器还可用于自定义透明层中的选项,例如自定义语音命令,自定义手势,与用户输入关联的应用的自定义本机命令和/或校准硬件设备和用户输入(例如语音校准,运动捕捉设备校准和/或对象识别校准)。
按钮701E可以用于捕获用户界面的屏幕截图并将屏幕截图导出为图像。可以与按钮701B的绘制模式和701A的绘制工具结合使用。用户标记了特定的用户界面后,可以将标记的版本导出为图像。
按钮701F还允许进行图形编辑,并且可以用于更改用户在用户界面上创建的图形的颜色或图形的各个方面。类似于按钮701B的绘制模式,此按钮可更改输入坐标处图形更改的性质。
按钮701G取消用户界面上的绘制。选择此按钮可以删除用户界面上的所有图形标记,并将底层UI重置为用户创建图形之前的状态。
按钮701H可用于启动白板应用,该应用允许用户在虚拟白板上使用绘制模式创建绘制或书写。
按钮701I可用于将文本注释添加到对象,例如操作系统UI或应用UI中显示的对象。文本注释可以从语音信号中进行解释,也可以由用户使用键盘键入。
按钮701J可用于打开或关闭工具界面701。当关闭时,可将工具界面最小化或完全从底层用户界面中删除。
如之前所讨论的,触控笔或远程硬件设备可以与诸如照相机或摄像机之类的其他硬件设备结合用于本系统。图8示出了可以与系统一起使用的触控笔801的示例。触控笔801可以例如通过蓝牙与硬件接收器802通信。硬件接收器可以连接到计算机系统,例如通过USB 802B,并且来自触控笔的信号通过硬件接收器传递到计算机系统,可以用来控制菜单803并与之接口,类似于图7所示的工具界面。
如图8所示,触控笔801可以包括物理按钮801A。这些物理按钮801可用于接通触控笔的电源,导航菜单803,并进行选择。另外,触控笔801可以包括独特的笔尖801B,该笔尖801B被照相机捕获在图像中并且被虚拟驱动程序识别。当处于绘制模式时,这可以允许触控笔801用于绘制和编辑。触控笔801还可包括运动跟踪硬件,例如加速度计和/或倾斜传感器,以在使用触控笔提供输入坐标或手势时辅助位置检测。另外,硬件接收器802可以包括校准按钮802A,当按下该按钮时,可以在用户界面中启动校准实用程序。这允许对触控笔进行校准。
返回图3,在步骤302,识别与用户输入相对应的上下文,所识别的上下文包括操作系统或在该操作系统上执行的应用之一。
图9示出了根据示例性实施例的,用于识别与用户输入相对应的上下文的流程图。如图9所示,操作系统数据901,应用数据902和用户输入数据903均可用于确定上下文904。
操作系统数据901可以包括例如关于操作系统中的活动窗口的信息。例如,如果活动窗口是计算器窗口,则可以将上下文确定为计算器应用。同样,如果活动窗口是Microsoft Word窗口,则可以将上下文确定为Microsoft Word应用。另一方面,如果活动窗口是文件夹,则可以将活动上下文确定为操作系统。操作系统数据还可包含其他信息,例如当前正在执行哪些应用,最后启动的应用以及可用于确定上下文的任何其他操作系统信息。
应用数据902可以包括例如关于正在执行的一个或多个应用的信息和/或将特定应用映射到某些类型的用户输入的信息。例如,第一应用可以被映射到语音输入,使得每当接收到语音命令时,上下文就被自动确定为第一应用。在另一示例中,特定手势可以与第二应用相关联,使得当接收到该手势作为输入时,启动或关闭第二应用,或者在第二应用内执行某些动作。
用户输入903也可以用于以各种方式确定上下文。如上所述,某些类型的用户输入可以映射到某些应用。在以上示例中,语音输入与应用第一应用的上下文相关联。另外,用户输入的属性也可以用于确定上下文。手势或动作可以映射到应用或操作系统。语音命令中的特定单词也可以映射到应用或操作系统。输入坐标也可以用于确定上下文。例如,可以确定用户界面中输入坐标的位置处的窗口,并且可以将与该窗口相对应的应用确定为上下文。
图10示出了使用输入坐标来确定上下文的示例。如图10所示,显示设备1001正在显示用户界面1002。还显示了将相机1004和透明层1003叠加在底层用户界面1003上。用户利用触控笔1000指向用户界面1002中的位置1005。由于位置1005位于对应于应用1的应用窗口内,因此与应用2,应用3或操作系统相反,应用1可以确定为用户输入的上下文。
回到图3,在步骤303,至少部分地基于所识别的上下文,将用户输入转换为一个或多个透明层命令。如先前所讨论的,透明层包括被配置为在虚拟驱动程序与操作系统和/或在操作系统上执行的应用之间的接口的应用编程接口(API)。
图11示出了用于将用户输入转换成透明层命令的流程图。如图11的步骤1104所示,可以至少部分地基于所识别的上下文1102和用户输入1103来确定透明层命令。透明层命令可以包括被配置为以一个或多个相应的上下文中执行的一个或多个本机命令。透明层命令还可以包括响应输出,该响应输出将传输到虚拟驱动程序并传输到硬件设备。
所识别的上下文1102可以用于确定哪个透明层命令应被映射到用户输入。例如,如果识别的上下文是“操作系统”,则可以将轻扫手势输入映射到透明层命令,该命令将使得用户界面在操作系统中当前打开的窗口中滚动(通过最小化一个打开的窗口并最大化一个下一个打开的窗口)。或者,如果所识别的上下文是“Web浏览器应用”,则可以将相同的滑动手势输入映射到透明层命令,从而导致滚动网页。
由于用户输入被特定地映射到一个或多个上下文内的某些本机命令,并且这些本机命令是透明层命令的一部分,因此用户输入1103还确定透明层命令。例如,语音命令“打开电子邮件”可以映射到特定的操作系统本机命令,以启动电子邮件应用Outlook。当收到包含已识别单词“打开电子邮件”的语音输入时,这将引发确定透明层命令,其中包括用于启动Outlook的本机命令。
如图11所示,还可以基于一个或多个用户设置1101和API库1104确定透明层命令。API库1104可用于查找与识别的上下文和特定用户输入相对应的本机命令。在轻扫手势和网络浏览器应用上下文的示例中,可以查询与该网络浏览器应用相对应的API库以进行适当的API调用,以引起网页的滚动。备选地,可以省略API库1104,并且可以将本机命令映射到特定的用户输入和所识别的上下文。
在确定用户输入为输入坐标的情况下,透明层命令至少部分的基于输入位置坐标和识别的上下文来确定。在这种情况下,透明层命令可以在所识别的上下文中包括至少一个本机命令,该至少一个本机命令被配置为在底层UI中的相应位置坐标处执行动作。
当有一个以上可能的动作映射到特定上下文和用户输入时,设置1101可用于确定相应的透明层命令。例如,当接收到输入坐标作为用户输入时,图7的按钮701B允许用户在选择,指向或绘制模式之间进行选择。此设置可用于确定透明层命令,并通过扩展确定执行哪个本机命令和执行哪个动作。在这种情况下,可能的本机命令可以包括:被配置为选择与底层UI中的相应位置坐标关联的对象的选择命令,配置为将指针移动到在底层UI中的相应位置坐标的指针命令,图形命令,用于在底层UI中相应位置坐标处更改显示输出。
图12A示出了当切换为选择模式时接收输入坐标的示例。如图12A所示,用户已经将触控笔1200指向显示设备1201上的操作系统UI 1202(具有透明UI 1203)。类似于先前的示例,相机1204可以用于确定触控笔1200的位置,方向信息以及输入坐标。由于切换了选择模式,并且触控笔1200指向操作系统UI 1202中的文件夹1205,因此确定的透明层命令可以包括本机操作系统命令,以选择与输入坐标关联的对象(在这种情况下为文件夹1205)。在另一个示例中,如果窗口位于输入坐标处,则将导致整个窗口的选择。
图12B示出了当切换为指向模式时接收输入坐标的示例。在这种情况下,确定的透明层命令可以包括本机操作系统命令,以将鼠标指针1206移动到输入坐标的位置。
图12C示出了当切换为绘制模式并且用户已经将触控笔1200扫过多个输入坐标时接收输入坐标的示例。在这种情况下,所确定的透明层命令可包括本机操作系统命令,以改变在每个输入坐标的位置的显示输出,从而在用户的用户界面1202上生成用户绘制线1207。绘制模式可以被存储为透明层1203的一部分,例如,作为与输入坐标的路径有关的元数据。然后,用户可以选择一个选项,将更改后的显示输出导出为图像。
在用户输入被识别为手势的情况下,至少部分地基于所识别的上下文,将用户输入转换为一个或多个透明层命令可以包括:至少部分地基于所识别的手势和所识别的上下文来确定透明层命令。透明层命令可以在所识别的上下文中包括至少一个本机命令,该至少一个本机命令被配置为在所识别的上下文中执行与所识别的手势相关联的动作。上面关于挥动手势和网络浏览器应用上下文讨论了这样的示例,该结果导致了本机命令被配置为在网络浏览器中执行滚动动作。
在用户输入被识别为一个或多个单词的情况下(例如通过使用语音识别),至少部分地基于所识别的内容,将用户输入转换为一个或多个透明层命令可以包括确定透明层命令至少部分地基于所识别的一个或多个单词和所识别的上下文。透明层命令可以包括在所识别的上下文中的至少一个本机命令,所述至少一个本机命令被配置为执行与在所识别的上下文中所识别的一个或多个单词相关联的动作。
图13示出了基于在输入语音数据中识别的一个或多个单词确定的透明层命令1300的示例。所识别的单词1301包括短语“白板”或“空白页”之一。透明层命令1300还包括命令的描述1302和响应指令1303,响应指令1303是由透明层在执行透明层命令时传输给虚拟驱动程序和硬件输出设备的输出指令。另外,透明层命令1300包括用于调用白板功能的实际本机命令1304。
图14示出了根据示例性实施例的基于在输入语音数据中识别的一个或多个单词确定的透明层命令1400的另一示例。在此示例中,一个或多个单词是“打开电子邮件”。如图14所示,透明层命令1400包括本机命令“outlook.exe”,其是用于运行启动Outlook应用的特定可执行文件的指令。透明层命令1400还包括语音响应“电子邮件已打开”,其将响应于接收到语音命令而被输出。
回到图3,在步骤304,在透明层上执行一个或多个透明层命令,该一个或多个透明层命令的执行被配置为使得所识别的上下文中的一个或多个本机命令的执行。
图15示出了根据示例性实施例的用于在透明层上执行一个或多个透明层命令的流程图。在步骤1501,识别透明层命令中的至少一个本机命令。可以例如在透明层命令的结构中指定为本机命令,以进行识别。
在步骤1502,在所识别的上下文中执行至少一个本机命令。该步骤可以包括经由针对该上下文识别的API将至少一个本机命令传递到所识别的上下文,并在所识别的上下文内执行本机命令。例如,如果识别的上下文是操作系统,则可以将本机命令传递给操作系统,以通过操作系统API执行。另外,如果所识别的上下文是应用,则可以将本机命令通过应用API传递给应用以执行。
可选地,在步骤1503中,可以将响应传输到硬件设备。如前所述,此响应可以从透明层路由到虚拟驱动程序,再路由到硬件设备。
图16-19示出了本文公开的系统的附加特征。图16示出了根据示例性实施例的用于添加与用户输入相对应的新命令的示例界面。界面1600中的仪表板包括已经被添加并且可以使用预定的用户输入和硬件设备(例如,语音命令)启动的应用1601的图标。仪表板还可以显示其他特定于应用的命令,这些命令已映射到某些用户输入。选择添加按钮1602打开添加命令菜单1603。该菜单允许用户在以下选项之间进行选择:项目类型:固定项目添加在底部栏菜单上/普通项目添加在拖动菜单中;图标:选择图像图标;背景:选择背景图标颜色;颜色:选择图标颜色;名称:设置新的项目名称;语音命令:设置语音激活命令以打开新应用;反馈响应:设置应用的语音响应反馈;命令:选择要启动的应用类型或自定义命令类型(例如,启动应用命令,在应用命令内执行操作,关闭应用命令等);进程开始:如果启动新的进程或应用,则为该进程或应用的名称;以及参数:传递给新流程或应用的任何参数。
图17示出了根据示例性实施例的绘制界面1700和绘制模式的各种组件和选项。图18示出了用于摄像机硬件设备的校准和设置接口1800,该摄像机和硬件设备用于识别对象并允许用户使用触摸和手势来提供输入。图19示出了通用设置界面1900,其允许用户定制界面的各个方面,切换输入模式以及进行其他改变。如界面1900所示,用户还可以访问设置页面以校准和调整硬件触控笔(称为“魔术触控笔”)的设置。
本文公开的系统可以在多个联网的计算设备上实现,并且可以用于进行联网的协作会话。例如,之前描述的白板功能可以是多个计算设备上的多个用户之间的共享白板。
白板和协作空间经常包括作为讨论或特定会议主题的图像。很多时候,有必要在协作工作区中编辑图像并与之接口。例如,图形设计团队可能希望对特定设计进行编辑并向同事提出修改建议。现有白板或其他共享协作空间的问题之一是,目前尚无法即时地在协作工作空间中剪辑,编辑或以其他方式修改图像,即实时且自动更改的方式传播给协作工作区中的其他参与者。例如,由于用户必须将图像带入其他应用以对其进行编辑和修改,然后将其重新导入到协作程序中,因此更改和裁剪图像的过程很困难。此过程会导致会议进行编辑的效率降低,例如特定用户将图像导出到编辑程序,进行必要的编辑然后重新导入图像所花费的时间。此外,许多用户不熟悉或不擅长执行这些类型的操作。此外,导出和重新导入图像的过程浪费了计算资源,例如导出和导入图像所需的资源,存储导出的图像所需的资源,启动和使用编辑软件所需的资源以及存储编辑的图像。这是可用于协作会话本身的计算资源的补充,这给本地计算设备带来了压力。
除了先前描述的用于实现通用硬件—软件接口的方法和系统之外,申请人还发现了允许在网络协作工作空间中的通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质。
图20示出了根据示例性实施例的,用于在网络协作工作空间中通过网络套接字连接来传播裁剪图像的流程图。图20所示的所有步骤可以在本地计算设备上执行,例如连接到服务器的客户端设备,并且不需要多个计算设备。
在步骤2001,在本地计算设备的用户界面上传输协作工作空间的表示,该协作工作空间托管在服务器上并且可以通过网络套接字连接供多个计算设备上的多个参与者访问。其中,协作工作空间的表示可以包括一个或多个图像,例如在协作会话中讨论或利用的图像。
图21A示出了根据示例性实施例的用于托管和传输协作工作空间的网络架构。如图21A所示,服务器2100连接到计算设备2101A-2101F。服务器2100和计算设备2101A-2101F可以经由诸如网络套接字连接之类的网络连接来连接,该网络连接允许计算设备2101A-2101F(客户端)与服务器2100之间进行双向通信。在图21A中,计算设备可以是任何类型的计算设备,例如膝上型计算机,台式计算机,智能电话或其他移动设备。
协作工作空间可以是例如数字白板,该数字白板被配置为通过网络套接字连接将来自多个参与者中的任何参与者的任何编辑传播到其他参与者。图21B示出了根据示例性实施例的用于将编辑传播至网络内的协作工作空间的过程。如图21B所示,如果计算设备2101B处的用户对协作工作空间进行编辑或更改,则该编辑或更改2102B被传输到服务器2100,在服务器2100中,服务器2100用于更新工作空间的托管版本。然后,服务器2100将编辑或更改作为更新2102A,2102C,2102D,2102E和2102F传播到其他连接的计算设备2101A,2101C,2101D,2101E和2101F。
协作工作空间的每个表示可以是为本地参与者定制的协作工作空间的版本。例如,如上所述,协作工作空间的每个表示可以包括与连接到服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象。
图22示出了根据示例性实施例的协作工作空间的多个表示。如图22所示,服务器2200托管协作工作空间2201,协作工作空间2201包括图像2202。如前所述,服务器上托管的协作工作空间的版本将传播到连接的设备。图22还示出了三个连接的用户,用户1,用户2和用户3的协作工作空间的表示。如图所示,每个表示包括协作工作空间中的所有对象和编辑。例如,表示2201A,2201B和2201C都包括图像2202的表示。
回到图20,在步骤2002,在本地计算设备上执行的裁剪工具检测用户输入,该用户输入选择了协作工作空间中所示的一个或多个图像中的图像的图像部分,该用户输入对应于多个坐标。
图23A至图23C示出根据示例性实施例的该检测处理的示例。如图23A所示,用户界面2301包括协作工作空间2302的表示,包括图像2306。用户界面2301可以对应于本地计算设备的用户接口,该本地计算设备连接到托管协作工作区的服务器。
用户界面2301还包括裁剪工具界面2303。如图所示,裁剪工具界面2303可以显示与多个不同的可选裁剪工具相对应的指示符或图标。可选裁剪工具界面可以包括,例如,与特定裁剪形状对应的裁剪工具,例如方形,圆形,矩形引用框,椭圆引用框,手动徒手裁剪工具(由所示的剪刀图标),或手动裁剪工具(如铅笔和尺子图标所示)。当然,可以利用各种不同的裁剪形状,并且这些示例并不旨在进行限制。
虽然将裁剪工具界面2303示为与协作工作空间界面2302的表示分离的界面,但是应理解,可以将裁剪工具界面集成到协作工作空间表示中,使得每个用户的协作表示工作区包括裁剪工具的界面。类似地,尽管裁剪工具可以是配置为与协作工作空间相对应的程序(以及其他程序,例如Internet浏览器,文字处理程序,图形编辑程序等)的接口的单独程序,但是也可以实现裁剪工具作为协作工作区程序的模块或组件。
图23B示出了用户在裁剪工具界面2303中对特定裁剪形状的选择。如图所示,用户已经选择圆形2304作为裁剪形状。可以使用定点设备(例如鼠标)进行选择,如图中鼠标指针所示。如前所述,还可以使用手势或触控笔进行选择。涉及虚拟驱动程序和/或透明层的先前描述的技术可以用于检测选择。
图23C示出了在选择圆形修剪形状2304之后并且在用户已经选择了要裁剪的区域之后的用户界面2301。用户可以例如通过将裁剪形状拖放到界面2301内的特定位置上来选择用于裁剪的区域。裁剪形状的选择还可以在用户可以移动或拖放到界面2301内的特定位置的所选形状中提出裁剪区域的轮廓。用户可以使用鼠标进行拖放。用户还可以使用手势或触控笔进行拖放,如前所述。涉及虚拟驱动程序和/或透明控件的先前描述的技术可用于检测拖放动作。
如图23C所示,用户已使用裁剪工具的圆形裁剪形状在图像2306中选择了圆形区域2305。如上所述,可以使用来自指示设备的用户输入来进行选择。一旦做出选择,裁剪工具就检测到输入以及与裁剪选择相对应的多个坐标。可以使用用户界面2301的水平(X)和垂直(Y)轴定义这些坐标。此外,多个坐标将对应于选定的裁剪区域。在图23C所示的示例中,多个坐标对应于圆形。可以通过裁剪工具从本地计算设备的操作系统中检索坐标本身。例如,裁剪工具应用(或者如果裁剪工具是协作工作空间应用的一部分,则为协作工作空间应用)可以通过API查询操作系统以请求与虚线圆2305中的每个点相对应的坐标。例如,如果裁剪形状是一个圆形,并且在做出选择时圆形的中心对应于定点设备的位置,则裁剪应用可以确定圆形中心的屏幕坐标(例如,通过查询指针位置的操作系统)并使用这些中心坐标来计算与裁剪形状相对应的多个坐标。在这种情况下,计算可使用圆的半径从中心点向外以360度投影等长的线,并将每条线的最终端点记录为多个坐标。
返回图20,在步骤2003中,在本地计算设备上执行的裁剪工具将与裁剪后的图像部分的边界相对应的多个坐标传输到先前讨论的透明层。如前所述,透明层在本地计算设备上执行,并且包括被配置为与以下一个或多个接口的应用编程接口(API):操作系统或被配置为在操作系统上执行的一个或多个应用。在这种情况下,透明层配置为与裁剪工具应用接口。但是,如果裁剪工具是协作工作空间应用的一部分,则在本地计算设备上执行的协作工作空间应用的本地实例也可以将多个坐标传输到透明层。
在步骤2004,在本地计算设备上执行的透明层至少部分地基于所接收的多个坐标来捕获图像部分。步骤2004可以包括:通过在本地计算设备上执行的透明层,向在本地计算设备上执行的操作系统或应用中的一个或多个传输对由多个坐标定义的图像部分的屏幕截图的请求。通过在本地计算设备上执行的透明层接收由多个坐标定义的图像部分的屏幕截图,并通过在本地计算设备上执行的透明层将图像部分存储在存储器中,例如本地计算设备的随机存取存储器。当然,步骤2004可以以其他方式执行。例如,步骤2004可以通过在本地计算设备上执行的透明层向在本地计算设备上执行的操作系统或应用中的一个或多个传输应用对整个屏幕的屏幕捕获的请求来执行(例如,通过向操作系统传输“打印屏幕”命令),使用透明层的一部分功能,至少部分基于多个坐标从屏幕截图中提取图像部分,然后存储图像部分在诸如本地计算设备的随机存取存储器的存储器中存储。
图24示出了图20中的步骤2003和2004的处理流程的示例。如图所示,用户已经捕获了由图像2406中的边界2402定义的图像部分,该图像部分在协作中显示。用户界面2400内的工作空间2401。为简单起见,在该图中未显示裁剪工具界面,但是可以理解,裁剪工具界面也将显示在用户界面2400上。裁剪工具应用2403检测裁剪边界的坐标(对应于圆2402)并将这些坐标传输到透明层2404。然后,透明层2404使用多个坐标捕获裁剪的图像部分,并将得到的图像部分存储在存储器2405(可以是例如随机存取存储器)中。
回到图20,在步骤2005,在本地计算设备上执行的透明层检测第二用户输入,以将所选图像部分拖动到协作工作空间内的位置。该第二用户输入可以是拖放动作,并且可以如先前所讨论的那样使用指示设备或使用手势或触控笔来输入。涉及虚拟驱动程序和/或透明控件的先前描述的技术也可以用于检测拖放动作。
如以下将讨论的,协作工作空间内的位置可以包括“白板”或其他共享的显示和编辑区域内的空间,并且还可以包括作为协作工作空间的一部分的任何界面或工具栏。
步骤2005可以包括通过在本地计算设备上执行的裁剪工具来检测第二用户输入,以将所选图像部分拖动到协作工作空间内的新位置。可以通过例如在检测到第二用户输入时查询操作系统来确定新位置。步骤2005还可以包括:通过在本地计算设备上执行的裁剪工具,将新位置传输到在本地计算设备上执行的透明层(从而提醒透明层注意第二输入和第二输入的位置)。
可替代地,当坐标被传输到透明层时,可以基于裁剪工具传输的变量或值,由透明层直接执行检测。例如,当裁剪工具将坐标传输到透明层时,透明层可以设置一个标志,指示透明层同时检测后续输入和后续输入的位置(在这种情况下为执行的“放置”输入)由用户拖动图像部分后。当检测到第二输入时,透明层可以例如通过查询操作系统来确定位置。
图25示出了用户将图像部分拖动到协作工作空间内的位置的示例。如界面2501所示,用户已使用裁剪工具界面2503的圆形裁剪工具将图像2302的图像部分2305拖动到协作工作区2502中的新位置。界面2501示出了用户拖动界面2501之后的界面2501。图像部分,但是在用户选择图像部分的最终位置之前(即,通过完成“拖放”的“放置”部分)。因此,图25示出了在接收第二输入之前但是在第一输入之后的接口2501。如果用户将通过完成放置输入来释放图像部分,则透明层将检测到与图像部分2305相对应的当前位置(直接或通过裁剪工具)。该位置可以由与释放图像(即,放置图像)时的指针位置相对应的点表示。
回到图20,在步骤2006,在本地计算设备上执行的透明层将多个命令传输到服务器上托管的协作工作空间。多个命令被配置为从协作工作空间中移除图像(即,原始图像的剩余部分),并且进一步至少部分地基于位置使图像部分被插入到协作工作空间中。在步骤2005中检测到的第二个输入。当协作工作空间通过网络套接字连接与本地计算设备通信时,透明层可以通过网络套接字连接传输多个命令。
图26示出了根据示例性实施例的用于向托管在服务器上的协作工作空间传输多个命令的流程图。在检测到第二输入之后,由透明层执行图26所示的步骤。
在步骤2601,将第一命令从透明层传输到托管协作工作空间的服务器,该第一命令被配置为使图像从协作工作空间中移除。用于引起删除图像的特定说明可能取决于协作工作空间的配置和参数。第一命令可以例如参考协作工作空间中与图像相对应的对象,并指示协作工作空间删除该对象。在协作工作空间未将图像存储为对象的情况下,透明层可以从屏幕捕获(基于第一输入)执行图像的边界检测,以确定定义图像边界的坐标并传输命令到协作工作区,以用空格替换由边界定义的区域(由坐标指定)。许多变化是可能的,并且这些示例并非旨在限制。
在步骤2602,透明层确定与第二输入的位置相关联的上下文。如前所述,协作工作空间可以包括各种工具栏和/或界面部分。因此,上下文例如可以是用于输入显示给所有用户的信息的工作空间的编辑界面,或者是所有用户可访问的工具栏界面(可以选择在本地为每个用户定制)。
在步骤2603,从透明层向托管协作工作空间的服务器传输第二命令,该第二命令基于与第二输入的位置相关联的上下文。第二命令可以取决于上下文,例如该位置是否在协作工作空间的编辑区域中,或者该位置是否是与协作工作空间的工具栏相关联的位置。
图27A-27B示出了根据示例性实施例的用于针对两个不同上下文向服务器上托管的协作工作空间传输多个命令的流程图。
当第二输入的位置对应于与编辑界面(例如,图25所示的白板界面2502)相关联的位置时,图27A的流程图对应于编辑界面的上下文。在步骤2701,将第一命令从透明层传输到托管协作工作空间的服务器,该第一命令被配置为使得将图像从协作工作空间中移除。在步骤2702,将第二命令从透明层传输到托管协作工作空间的服务器,该第二命令被配置为使图像部分被插入到该位置处的协作工作空间中。当图像部分被存储在诸如随机存取存储器的存储器中时,透明层可以从存储器中检索图像部分并将图像部分传输到服务器以用于在该位置处插入。可选地,透明层可以将图像部分的存储位置作为第二命令的一部分传输给服务器,并且服务器可以使用该存储位置从本地计算设备检索图像部分。
当第二输入的位置对应于与编辑界面相关联的位置时,图27B的流程图对应于工具栏界面的上下文。在步骤2703,将第一命令从透明层传输到托管协作工作空间的服务器,该第一命令被配置为使得将图像从协作工作空间中移除。在步骤2704,将第二命令从透明层传输到托管协作工作空间的服务器,该第二命令被配置为使与工具栏界面相关联的工具栏存储图像部分。当为连接到协作工作空间的每个用户自定义工具栏时,本地计算设备上工具栏的本地版本可以存储图像部分。在这种情况下,服务器可以指示本地计算设备将图像部分本地存储在本地存储器中。或者,如果工具栏不是为每个用户定制的,并且在协作工作空间中对所有用户都是统一的,则服务器可以将图像部分存储在服务器的内存中,协作工作空间中的所有用户都可以使用他们的图像来访问它们。工具栏界面通过网络套接字连接。
图28A-28C示出了根据示例性实施例的用户将图像部分拖动到协作工作空间的编辑界面以及将图像部分拖动到编辑界面的结果的示例。
如图28A所示,用户已在协作工作空间的编辑界面2801中选择了图像2802的圆形裁剪2803。该裁剪工具未在该图中示出,但是应当理解,用户界面将包括裁剪工具。此外,在该示例中,协作工作空间被示为仅包括编辑界面2801,但是如先前所讨论的,协作工作空间可以包括附加的界面和工具栏。
图28B示出了在用户将图像部分2803拖到协作工作空间的编辑界面2801内的位置之后但在用户释放(丢弃图像部分)之前的编辑界面2801。剩余图像2802和垃圾桶图标2804之间的虚线箭头指示当用户完成拖放操作时(即,当检测到第二输入时),如先前所讨论的,剩余图像2802将被从协作工作空间中删除。垃圾桶图标2804不是用户界面或协作工作区的一部分,而是在图中显示以说明用户对图像部分2803进行拖放的结果。
图28C示出了在用户完成拖放动作之后(即,在检测到第二输入之后)的协作工作空间的编辑界面2801。如图所示,图像部分2803在放置位置处被插入到协作工作空间的编辑界面2801中,并且原始图像的其余部分(图28B中的2802)被从协作工作空间的编辑界面2801中移除。
重要的是要注意,图28C所示的协作工作空间中的编辑界面的更改会在协作工作空间的所有实例中传播给连接到协作工作空间的所有用户。换句话说,对协作工作空间的更改不仅发生在本地设备上或协作工作空间应用的本地实例上,而且还发生在远程用户使用的远程设备上的协作工作空间实例上。如先前所述,这是因为透明层通过网络套接字连接传输命令以删除原始图像并将图像部分插入到通过网络套接字连接托管协作工作区的服务器中,然后通过网络套接字连接将这些更改传播到服务器上的所有已连接设备。
图29A-29E示出了根据示例性实施例的用户将图像部分拖动到协作工作空间的工具栏界面以及将图像部分拖动到工具栏界面的结果的示例。
如图29A所示,用户已经在协作工作空间的编辑界面2901中选择了图像2902的圆形裁剪2903。该裁剪工具未在该图中示出,但是应当理解,用户界面将包括裁剪工具。除了编辑界面2901之外,协作工作空间还包括工具栏界面2904。工具栏界面2904可以包括用户可访问以编辑或标记编辑界面2904中的内容的各种工具。如下所述,工具栏界面还可以包括存储图像以供重复使用的功能。
图29B示出了在用户将图像部分2903拖动到与协作工作空间的工具栏界面2904相关联的位置之后但在用户释放(放置图像部分)之前的协作工作空间。剩余图像2902和垃圾桶图标2906之间的虚线箭头指示,当用户完成拖放操作时(即,当检测到第二输入时),如先前所讨论的,剩余图像2902将被从协作工作区中删除。垃圾桶图标2904不是用户界面或协作工作区的一部分,而是在图中显示,以说明用户拖放图像部分2903的结果。
图29B还示出了新图标2905,当用户将图像部分2903拖动到工具栏界面2904上时,该图标2905会出现在工具栏界面2904中。图标2905(显示为“S”)可以向用户指示正在拖放工具栏界面上的图像部分将导致将图像保存到工具栏,以供用户随后重新使用。
图29C示出了在用户完成拖放动作之后(即,在检测到第二输入之后)的协作工作空间。如图所示,图像部分(图29B中的2903)或剩余图像(图29B中的2902)都没有出现在协作工作空间中。这是透明层向托管协作工作空间的服务器传输第一命令,指示服务器上的协作应用从协作工作空间中删除原始图像的结果,以及向托管协作工作空间的服务器传输命令第二命令的透明命令图像部分存储在与工具栏界面2904相关联的工具栏中。工具栏界面2904通过图标2905的存在来指示这一点,该图标提醒用户所存储的图像被保存在工具栏上并且可以通过工具栏界面2904进行访问。
对于连接到协作工作空间的所有用户,可以在协作工作空间的所有实例之间传播对图29C所示的协作工作空间的更改。换句话说,对协作空间的更改可以在协作空间的所有实例的所有用户上发生。如前所述,这是因为透明层通过网络套接字连接传输命令以删除原始图像并将该该位置处的图像部分插入到网络套接字连接上托管协作工作区的服务器,然后通过网络套接字连接将这些更改传播到服务器上的所有已连接设备。在这种情况下,然后可以将存储的图像存储或托管在服务器上,并由所有通过其工具栏界面(可以通过网络套接字连接检索图像部分)的实例连接到协作工作区的所有用户访问。可替代地,服务器可以指示本地计算设备将图像部分本地存储在本地存储器中,从而使其只能由本地计算设备访问。
图29D示出了使用工具栏界面2904来检索先前存储的图像部分。如图29D所示,用户已经在工具栏界面中选择了图标2905,从而导致向用户呈现所存储的图像界面2907。存储的图像界面2907可以显示所有先前保存的图像或图像部分的表示。例如,表示2908对应于图29B中的图像部分2903。
图29E示出了使用工具栏界面来插入先前保存的图像。如图29E所示,用户已经将表示2908拖出所存储的图像界面并拖到编辑界面2901上,从而将图像部分2903重新插入到协作工作空间的编辑界面2901中。
可以在一个或多个计算机系统中实现或涉及一种或多种上述技术。图30示出了专门的计算环境3000的示例。计算环境3000不旨在提出任何限制于描述的实施例的使用范围或功能(一个或多个)。
参考图30,计算环境3000包括至少一个处理单元3010和存储器3020。处理单元3010执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。存储器3020可以是易失性存储器(例如,寄存器、高速缓存、RAM),非易失性存储器(例如,ROM、EEPROM、闪存等),或两者的某种组合。存储器3020可以存储实现所描述的技术的软件3080。
计算环境可以具有其他功能。例如,计算环境3000包括存储3040,一个或多个输入设备3050,一个或多个输出设备3060,以及一个或多个通信连接3090。诸如总线控制器或网络的互连机构3070将计算环境3000的组件互连。通常,操作系统软件或固件(未显示)为在计算环境3000中执行的其他软件提供操作环境,并协调计算环境3000的组件的活动。
存储器3040可以是可移动的或不可移动的,并且包括磁盘、磁带或盒带、CD-ROM、CD-RW、DVD或任何其他可用于存储信息并且可以被存储的介质。可以在计算环境3000中访问。存储器3040可以存储软件3080的指令。
输入设备3050可以是诸如键盘、鼠标、笔、轨迹球、触摸屏或游戏控制器之类的触摸输入设备、语音输入设备、扫描设备、数码相机、遥控器。或提供输入到计算环境3000的另一设备。输出设备3060可以是显示器、电视、监视器、打印机、扬声器或提供来自计算环境3000的输出的另一设备。
通信连接3090使得能够通过通信介质与另一计算实体进行通信。通信介质在调制数据信号中传达诸如计算机可执行指令,音频或视频信息或其他数据之类的信息。调制数据信号是一种信号,它具有一个或多个特征,以将信息编码为信号的方式进行设置或更改。作为示例而非限制,通信介质包括利用电、光、RF、红外、声或其他载体实现的有线或无线技术。
可以在计算机可读介质的上下文中描述实现。计算机可读介质是可以在计算环境中访问的任何可用介质。通过示例而非限制的方式,在计算环境3000内,计算机可读介质包括存储器3020,存储器3040,通信介质以及以上任何一种的组合。
当然,图30将计算环境3000,显示设备3060和输入设备3050图示为单独的设备,仅用于易于识别。计算环境3000,显示设备3060和输入设备3050可以是单独的设备(例如,通过电线连接到监视器和鼠标的个人计算机),可以集成在单个设备中(例如,具有触摸显示器,例如智能手机或平板电脑),或设备的任何组合(例如,可操作地耦合到触摸屏显示设备的计算设备,连接到单个显示设备和输入设备的多个计算设备等))。计算环境3000可以是机顶盒、个人计算机或一个或多个服务器,例如联网服务器群、群集服务器环境或计算设备的云网络。
已经参考所描述的实施例描述和说明了本发明的原理,将认识到所描述的实施例可以在布置和细节上进行修改而不背离这些原理。以软件示出的所述实施例的元件可以通过硬件实现,反之亦然。
鉴于可以应用本发明的原理的许多可能的实施例,我们要求所有落入所附权利要求及其等同物的范围和精神内的实施例作为本发明。
Claims (21)
1.一种用于在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,其特征在于,包括:
在本地计算设备的用户界面上传输协作工作空间的表示,所述协作工作空间托管在服务器上,并且可以通过所述网络套接字连接访问多个计算设备上的多个参与者,其中,所述协作工作空间包括一个或多个图像;
由在所述本地计算设备上执行的裁剪工具,检测在所述一个或多个图像中选择图像的图像部分的用户输入,所述用户输入对应于多个坐标;
由在所述本地计算设备上执行的所述裁剪工具,将所述多个坐标传输到在所述本地计算设备上执行的透明层,所述透明层包括被配置为与以下中的一个或多个接口的应用编程接口(API):操作系统或被配置为在所述操作系统上执行的一个或多个应用;
由在所述本地计算设备上执行的所述透明层,至少部分地基于所述多个坐标来捕获所述图像部分;
由在所述本地计算设备上执行的所述透明层检测第二用户输入,以将选择的所述图像部分拖动到所述协作工作空间内的位置;以及
由在所述本地计算设备上执行的所述透明层,将多个命令传输到托管所述协作工作空间的所述服务器,所述多个命令被配置为使得所述图像从所述协作工作空间中移除,并进一步使得所述图像部分至少部分地基于所述位置被插入到所述协作工作空间中。
2.根据权利要求1所述的方法,其特征在于,通过在所述本地计算设备上执行的所述透明层,至少部分地基于所述多个坐标来捕获所述图像部分包括:
由在所述本地计算设备上执行的所述透明层,向在所述本地计算设备上执行的操作系统或应用中的一个或多个传输请求,用于对由多个坐标定义的所述图像部分的屏幕捕获;
由在所述本地计算设备上执行的所述透明层,接收由所述多个坐标定义的所述图像部分的屏幕捕获;以及
由在所述本地计算设备上执行的所述透明层,将所述图像部分存储在所述本地计算设备的随机存取存储器中。
3.根据权利要求1所述的方法,其特征在于,所述多个命令是通过所述网络套接字连接传输的。
4.根据权利要求1所述的方法,其特征在于,通过在所述本地计算设备上执行的所述透明层来检测将选择的所述图像部分拖动到所述协作工作空间内的新位置的第二用户输入包括:
由在所述本地计算设备上执行的裁剪工具检测将选择的所述图像部分拖动到所述协作工作空间内的所述新位置的所述第二用户输入;以及
由在所述本地计算设备上执行的所述裁剪工具将所述新位置传输到在所述本地计算设备上执行的所述透明层。
5.根据权利要求1所述的方法,其特征在于,所述位置对应于与编辑界面相关联的位置,并且其中,由在所述本地计算设备上执行的所述透明层向托管所述协作工作空间的所述服务器传输多个命令包括:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使所述图像部分插入到所述位置处的编辑工作空间中。
6.根据权利要求5所述的方法,其特征在于,所述图像部分被所述透明层存储在所述随机存取存储器中,并且其中,所述第二命令包括所述图像部分在所述随机存取存储器中的存储位置。
7.根据权利要求1所述的方法,其特征在于,所述位置对应于与工具栏界面相关联的位置,并且其中,由在所述本地计算设备上执行的所述透明层向托管所述协作工作空间的所述服务器传输多个命令包括:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使与所述工具栏界面相关联的工具栏存储所述图像部分。
8.一种本地计算设备,其特征在于,用于在网络协作工作空间中通过网络套接字连接来传播裁剪的图像,所述本地计算设备包括:
一个或多个处理器;以及
一个或多个存储器,所述一个或多个存储器可操作地耦合到所述一个或多个处理器中的至少一个,并且在其上存储有指令,当由所述一个或多个处理器中的至少一个执行时,使所述一个或多个处理器中的至少一个执行以下操作:
在所述本地计算设备的用户界面上传输所述协作工作空间的表示,所述协作工作空间托管在服务器上,并且可以通过所述网络套接字连接访问多个计算设备上的多个参与者,其中,所述协作工作空间包括一个或多个图像;
由在所述本地计算设备上执行的裁剪工具,检测在所述一个或多个图像中选择图像的图像部分的用户输入,所述用户输入对应于多个坐标;
由在所述本地计算设备上执行的所述裁剪工具,将多个坐标传输到在所述本地计算设备上执行的透明层,所述透明层包括被配置为与以下中的一个或多个接口的应用编程接口(API):操作系统或被配置为在所述操作系统上执行的一个或多个应用;
由在所述本地计算设备上执行的所述透明层,至少部分地基于所述多个坐标来捕获所述图像部分;
由在所述本地计算设备上执行的所述透明层检测第二用户输入,以将所选的所述图像部分拖动到所述协作工作空间内的位置;以及
由在所述本地计算设备上执行的所述透明层将所述多个命令传输到托管所述协作工作空间的所述服务器,所述多个命令被配置成使得所述图像从所述协作工作空间被移除,并且进一步使得所述图像部分至少部分地基于所述位置被插入所述协作工作空间中。
9.根据权利要求8所述的本地计算设备,其特征在于,所述指令在由一个或多个处理器中的至少一个执行时,使所述一个或多个处理器中的至少一个通过在所述本地计算设备上执行的所述透明层至少部分地基于多个坐标来捕获所述图像部分进一步使一个或多个处理器中的至少一个:
由在所述本地计算设备上执行的所述透明层,向在所述本地计算设备上执行的操作系统或应用中的一个或多个传输请求,用于对由多个坐标定义的所述图像部分进行屏幕捕获;
由在所述本地计算设备上执行的所述透明层,接收由所述多个坐标定义的所述图像部分的屏幕捕获;以及
由在所述本地计算设备上执行的所述透明层,将所述图像部分存储在所述本地计算设备的随机存取存储器中。
10.根据权利要求8所述的本地计算设备,其特征在于,所述多个命令是通过所述网络套接字连接传输的。
11.根据权利要求8的本地计算设备,其特征在于,所述指令在由所述一个或多个处理器中的至少一个执行时,使得所述一个或多个处理器中的至少一个处理器通过在所述本地计算设备上执行的所述透明层来检测将选择的所述图像部分拖动到所述协作工作空间内的新位置的第二用户输入,进一步使所述一个或多个处理器中的至少一个处理器:
由在所述本地计算设备上执行的裁剪工具检测将选择的所述图像部分拖动到所述协作工作空间内的所述新位置的第二用户输入;以及
由在所述本地计算设备上执行的所述裁剪工具将所述新位置传输到在所述本地计算设备上执行的所述透明层。
12.根据权利要求8所述的本地计算设备,其特征在于,所述位置对应于与编辑界面相关联的位置,并且其中,所述指令在由所述一个或多个处理器中的至少一个执行时,使所述一个或多个处理器中的至少一个通过在所述本地计算设备上执行的所述透明层将多个命令传送到托管所述协作工作空间的所述服务器,进一步使所述一个或多个处理器中的至少一个执行以下动作:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使得所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使所述图像部分插入到所述位置处的编辑工作空间中。
13.根据权利要求12所述的本地计算设备,其特征在于,所述图像部分被所述透明层存储在随机访问存储器中,并且其中,所述第二命令包括所述图像部分在所述随机访问存储器中的存储位置。
14.根据权利要求8所述的本地计算设备,其特征在于,所述位置对应于与工具栏界面相关联的位置,并且其中,所述在由所述一个或多个处理器中的至少一个执行时,使所述一个或多个处理器中的至少一个执行以下操作的指令:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使得所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使与所述工具栏界面关联的工具栏存储所述图像部分。
15.至少一种非暂时性计算机可读介质,其特征在于,存储计算机可读指令,所述指令在由所述本地计算设备执行时使得所述本地计算设备执行以下操作:
在所述本地计算设备的用户界面上传输所述服务器上托管的所述协作工作空间的表示,所述协作工作空间可通过网络套接字连接来访问多个计算设备上的多个参与者,其中,所述协作工作空间包括一个或多个图像;
由在所述本地计算设备上执行的裁剪工具,检测在所述一个或多个图像中选择图像的图像部分的用户输入,所述用户输入对应于多个坐标;
由在所述本地计算设备上执行的所述裁剪工具,将多个坐标传输到在所述本地计算设备上执行的透明层,所述透明层包括被配置为与以下中的一个或多个接口的应用编程接口(API):操作系统或被配置为在所述操作系统上执行的一个或多个应用;
由在所述本地计算设备上执行的透明层,至少部分地基于所述多个坐标来捕获图像部分;
由在所述本地计算设备上执行的透明层检测第二用户输入,以将所选的所述图像部分拖动到所述协作工作空间内的位置;以及
由在所述本地计算设备上执行的所述透明层将所述多个命令传输到托管所述协作工作空间的所述服务器,所述多个命令被配置成使得所述图像从所述协作工作空间被移除,并且进一步使得所述图像部分至少部分地基于所述位置被插入所述协作工作空间中。
16.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述指令在由所述本地计算设备执行时使所述本地计算设备通过在所述本地计算设备上执行的所述透明层至少部分地基于多个坐标来捕获所述图像部分,还使所述本地计算设备:
由在所述本地计算设备上执行的所述透明层,向在所述本地计算设备上执行的操作系统或应用中的一个或多个传输请求用于对由所述多个坐标定义的所述图像部分进行屏幕捕获;
由在所述本地计算设备上执行的所述透明层,接收由所述多个坐标定义的所述图像部分的屏幕捕获;以及
由在本地计算设备上执行的透所述明层,将所述图像部分存储在所述本地计算设备的随机存取存储器中。
17.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述多个命令是通过所述网络套接字连接传输的。
18.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述指令在由所述本地计算设备执行时使所述本地计算设备通过在所述本地计算设备上执行的所述透明层来检测将选择的所述图像部分拖动到所述协作工作空间内的新位置的第二用户输入,进一步使所述本地计算设备执行以下操作:
由在所述本地计算设备上执行的裁剪工具检测将选择的所述图像部分拖动到所述协作工作空间内的所述新位置的第二用户输入;以及
由在所述本地计算设备上执行的所述裁剪工具将所述新位置传输到在本地计算设备上执行的所述透明层。
19.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述位置对应于与编辑界面相关联的位置,并且其中,所述指令在由所述本地计算设备执行时,使所述本地计算设备通过在所述本地计算设备上执行的所述透明层将多个命令传送到托管所述协作工作空间的所述服务器,进一步使所述本地计算设备执行以下操作:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使得所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使所述图像部分被插入到所述位置处的编辑工作空间中。
20.根据权利要求19所述的至少一种非暂时性计算机可读介质,其特征在于,所述图像部分被所述透明层存储在随机存取存储器中,并且其中,所述第二命令包括所述图像部分在所述随机存取存储器中的存储位置。
21.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述位置对应于与工具栏界面相关联的位置,并且其中,所述指令在由所述本地计算设备执行时,使得所述本地计算设备通过在所述本地计算设备上执行的所述透明层将所述多个命令传送到托管所述协作工作空间的服务器,还使所述本地计算设备:
从所述透明层向托管所述协作工作空间的所述服务器传输第一命令,所述第一命令被配置为使得所述图像从所述协作工作空间中移除;以及
从所述透明层向托管所述协作工作空间的所述服务器传输第二命令,所述第二命令被配置为使与所述工具栏界面相关联的工具栏存储所述图像部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/983,747 | 2018-05-18 | ||
US15/983,747 US11334220B2 (en) | 2017-08-24 | 2018-05-18 | Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace |
PCT/EP2019/062687 WO2019219848A1 (en) | 2018-05-18 | 2019-05-16 | Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112424738A true CN112424738A (zh) | 2021-02-26 |
Family
ID=66690298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047465.3A Pending CN112424738A (zh) | 2018-05-18 | 2019-05-16 | 在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP3794432A1 (zh) |
JP (1) | JP2021523484A (zh) |
KR (1) | KR20210010567A (zh) |
CN (1) | CN112424738A (zh) |
BR (1) | BR112020023519A2 (zh) |
WO (1) | WO2019219848A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070124737A1 (en) * | 2005-11-30 | 2007-05-31 | Ava Mobile, Inc. | System, method, and computer program product for concurrent collaboration of media |
CN101809623A (zh) * | 2007-09-24 | 2010-08-18 | 微软公司 | 使用形状改变数字图像的外观 |
US20110012929A1 (en) * | 2009-07-20 | 2011-01-20 | Aryk Erwin Grosz | Method for Displaying Content within an Online Collage-Based Editor Using a Relative Coordinate System |
US20140101571A1 (en) * | 2012-10-04 | 2014-04-10 | Lucid Dream Software, Inc. | Shared collaborative environment |
CN105230051A (zh) * | 2013-04-15 | 2016-01-06 | 微软技术许可有限责任公司 | 用于带有剪辑功能的协作创作的方法、装置和计算机可读介质 |
CN105659286A (zh) * | 2013-09-18 | 2016-06-08 | 英特尔公司 | 自动化图像裁剪和分享 |
CN106233236A (zh) * | 2013-11-12 | 2016-12-14 | 微软技术许可有限责任公司 | 处理和剪裁图像的用户体验 |
-
2019
- 2019-05-16 EP EP19726880.8A patent/EP3794432A1/en not_active Withdrawn
- 2019-05-16 BR BR112020023519-9A patent/BR112020023519A2/pt not_active Application Discontinuation
- 2019-05-16 WO PCT/EP2019/062687 patent/WO2019219848A1/en active Application Filing
- 2019-05-16 JP JP2020564175A patent/JP2021523484A/ja active Pending
- 2019-05-16 KR KR1020207036369A patent/KR20210010567A/ko unknown
- 2019-05-16 CN CN201980047465.3A patent/CN112424738A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070124737A1 (en) * | 2005-11-30 | 2007-05-31 | Ava Mobile, Inc. | System, method, and computer program product for concurrent collaboration of media |
CN101809623A (zh) * | 2007-09-24 | 2010-08-18 | 微软公司 | 使用形状改变数字图像的外观 |
US20110012929A1 (en) * | 2009-07-20 | 2011-01-20 | Aryk Erwin Grosz | Method for Displaying Content within an Online Collage-Based Editor Using a Relative Coordinate System |
US20140101571A1 (en) * | 2012-10-04 | 2014-04-10 | Lucid Dream Software, Inc. | Shared collaborative environment |
CN105230051A (zh) * | 2013-04-15 | 2016-01-06 | 微软技术许可有限责任公司 | 用于带有剪辑功能的协作创作的方法、装置和计算机可读介质 |
CN105659286A (zh) * | 2013-09-18 | 2016-06-08 | 英特尔公司 | 自动化图像裁剪和分享 |
CN106233236A (zh) * | 2013-11-12 | 2016-12-14 | 微软技术许可有限责任公司 | 处理和剪裁图像的用户体验 |
Also Published As
Publication number | Publication date |
---|---|
EP3794432A1 (en) | 2021-03-24 |
JP2021523484A (ja) | 2021-09-02 |
KR20210010567A (ko) | 2021-01-27 |
WO2019219848A1 (en) | 2019-11-21 |
BR112020023519A2 (pt) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11483376B2 (en) | Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace | |
US20220382505A1 (en) | Method, apparatus, and computer-readable medium for desktop sharing over a web socket connection in a networked collaboration workspace | |
CN104246678B (zh) | 用于对文档中的内容对象进行共享的设备、方法和图形用户界面 | |
US9965039B2 (en) | Device and method for displaying user interface of virtual input device based on motion recognition | |
US20190065012A1 (en) | Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace | |
KR102594951B1 (ko) | 전자 장치 및 그의 동작 방법 | |
JP6433923B2 (ja) | デバイスへの特定のオブジェクト位置の提供 | |
CN111433735A (zh) | 实现通用硬件-软件接口的方法、设备和计算机可读介质 | |
CN112106044A (zh) | 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质 | |
US11334220B2 (en) | Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace | |
CN112204512A (zh) | 用于在网络化协作工作区中通过web套接字连接进行桌面共享的方法,装置和计算机可读介质 | |
CN112805685A (zh) | 用于在网络协作工作空间中通过网络套接字连接传播丰富笔记数据对象的方法、装置和计算机可读介质 | |
CN112424738A (zh) | 在网络协作工作空间中通过网络套接字连接来传播裁剪图像的方法,装置和计算机可读介质 | |
CN106502515B (zh) | 一种图片输入方法及移动终端 | |
JP2019125024A (ja) | 電子機器、情報処理方法、プログラム及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |