JP6185675B2 - スクリーンショットの生成 - Google Patents

スクリーンショットの生成 Download PDF

Info

Publication number
JP6185675B2
JP6185675B2 JP2016556826A JP2016556826A JP6185675B2 JP 6185675 B2 JP6185675 B2 JP 6185675B2 JP 2016556826 A JP2016556826 A JP 2016556826A JP 2016556826 A JP2016556826 A JP 2016556826A JP 6185675 B2 JP6185675 B2 JP 6185675B2
Authority
JP
Japan
Prior art keywords
screenshot
application
application scenario
class
video playback
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.)
Active
Application number
JP2016556826A
Other languages
English (en)
Other versions
JP2017513106A (ja
Inventor
イェ・ジアホワン
チェン・ユイクン
ジー・シン
ジャオ・ペンジエ
リウ・リンリン
シー・ウェンロン
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2017513106A publication Critical patent/JP2017513106A/ja
Application granted granted Critical
Publication of JP6185675B2 publication Critical patent/JP6185675B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0484Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

他の出願の相互参照
本願は、2014年4月11日出願の中国特許出願第201410146004.0号「A METHOD AND A DEVICE FOR IMPLEMENTING SCREENSHOTS」の優先権を主張しており、この出願は、すべての目的のために参照により本明細書に組み込まれる。
本願は、コンピュータ技術の分野に関し、特に、スクリーンショットを実行するための技術に関する。
遠隔通信技術の発展に伴って、携帯電話およびその他の携帯端末の機能がかつてないほどに強力になっている。携帯端末を用いて電話をかけるだけでなく、様々な種類のアプリケーションソフトウェアを実行することもできる。携帯端末ユーザにとって、携帯端末で実行中の特定のアプリケーションによって表示されたコンテンツのスクリーンショットを生成したいと思うことは珍しいことではない。例えば、ユーザが、ビデオフレーム、ゲーム画像、または、その他の画像のスクリーンショットを保存したいと思うことがある。
携帯端末上で動作する特定のタイプのオペレーティングシステムでは、異なるタイプのアプリケーションからスクリーンショットを生成するために、異なる技術を利用する必要がある。例えば、iOSオペレーティングシステムでは、iOSシステムのネイティブアプリケーション、iOSシステムのビデオ再生アプリケーション、ならびに、iOSシステムの2Dまたは3Dゲームアプリケーションに、異なるスクリーンショット生成技術を利用する必要がありうる。結果として、アプリケーション開発者は、異なる各アプリケーションタイプに対して異なるスクリーンショット生成技術を実装する必要がある。ユーザは、様々な異なるアプリケーションタイプに対応する異なるスクリーンショット生成技術を学ぶ必要があることで不便を感じうる。
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
スクリーンショットを生成するための処理の一実施形態を示すフローチャート。
スクリーンショットを生成するための処理の一実施形態を示すフローチャート。
スクリーンショットを生成するためのシステムの一実施形態を示す図。
スクリーンショットを生成するためのシステムの一実施形態を示す図。
スクリーンショットを生成するためにプログラムされたコンピュータシステムの一実施形態を示す機能図。
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
スクリーンショットを生成する実施形態について本明細書に記載する。スクリーンショットコマンドが、アプリケ−ションから受信される。アプリケーションは、現在実行中であり、携帯デバイスにコンテンツを表示している。スクリーンショットコマンドは、アプリケーションのアプリケーションシナリオを特定するアプリケーションシナリオパラメータを含む。アプリケーションシナリオの例は、ネイティブアプリケーションシナリオ、ビデオ再生アプリケーションシナリオ、および、ゲームアプリケーションシナリオを含む。スクリーンショットコマンドのアプリケーションシナリオパラメータに対応するスクリーンショットクラスが取得され、取得されたスクリーンショットクラスから、スクリーンショットオブジェクトが生成される。スクリーンショットオブジェクトを用いて、アプリケーションによって携帯デバイスのスクリーンに表示されたコンテンツから、スクリーンショットが生成される。スクリーンショットは、アプリケーションへ送り返される。いくつかの実施形態において、スクリーンショットは、スクリーンに表示される、および/または、少なくとも1人の他のユーザと共有される。
図1は、スクリーンショットを生成するための処理の一実施形態を示すフローチャートである。
いくつかの実施形態において、処理100は、携帯デバイスで実行される。携帯デバイスの例としては、携帯電話、スマートフォン、タブレットデバイス、ラップトップコンピュータ、または、任意のその他のコンピュータデバイスが挙げられる。いくつかの実施形態において、処理100は、携帯デバイスのオペレーティングシステムによって実施される。いくつかの実施形態において、オペレーティングシステムは、iOSオペレーティングシステムを含む。いくつかの実施形態において、処理100は、オペレーティングシステムではない携帯デバイスで実行中のスクリーンショット生成メカニズムによって実行される。
102で、アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドがアプリケーションから受信される。
様々な実施形態において、アプリケーションから受信される「スクリーンショットコマンド」は、そのアプリケーションによって表示されたコンテンツのスクリーンショットを実行するためのコールまたは呼び出しを含む。アプリケーションは、携帯デバイスで現在実行中であり、さらに、携帯デバイスのスクリーンにコンテンツを表示している。いくつかの実施形態において、スクリーンショットコマンドは、アプリケーションプログラミングインターフェース(API)コールを含む。様々な実施形態では、(例えば、携帯デバイスで実行されているプラットフォームおよび/またはオペレーティングシステムと互換性のある言語の)スクリーンショットライブラリと、スクリーンショットライブラリにアクセスするためのインターフェースとを含むスクリーンショットソフトウェア開発キット(SDK)が、アプリケーションの開発者に提供されており、その結果、アプリケーションの開発者は、アプリケーションを開発するプロセス中にスクリーンショットSDKと統合するようにアプリケーションの機能を構成することができる。
様々な実施形態において、スクリーンショットコマンドは、アプリケーションの実行中に携帯デバイスのユーザによって実行された所定のスクリーンショット操作の検出に応答して、アプリケーションによって生成される。所定のスクリーンショット操作は、現在実行中のアプリケーションによって携帯デバイスのスクリーンに表示されたコンテンツのスクリーンショットの生成をトリガするよう構成される。いくつかの実施形態において、所定のスクリーンショット操作は、アプリケーションの開発時にアプリケーションと統合されたSDKのスクリーンショットライブラリによって構成される。例えば、所定のスクリーンショット操作は、携帯デバイスを振ること、スクリーンショットボタンの作動、および、ユーザによって実行されて取り込まれたジェスチャを含む。例えば、携帯デバイスを振ることは、携帯デバイスに組み込まれたモーションセンサによって検出可能である。例えば、スクリーンショットボタンの作動は、スクリーンショット生成をトリガするよう構成されたハードウェアボタンまたは表示されたソフトボタン(例えば、ボタンユーザインターフェースウィジェット)の作動であってよい。例えば、取り込まれたユーザによるジェスチャは、ジェスチャ取り込みセンサ(例えば、カメラまたは赤外線センサ)によって検出可能なユーザの手の動きを含む。
様々な実施形態において、スクリーンショットコマンドを渡したアプリケーションは、アプリケーションシナリオに関連する。アプリケーションシナリオの例は、ネイティブアプリケーションシナリオ、ビデオ再生アプリケーションシナリオ、および、ゲームアプリケーションシナリオを含む。例えば、「ネイティブアプリケーションシナリオ」は、特定のプラットフォームまたはオペレーティングシステム上で利用するために開発されたアプリケーションを指す。例えば、「ビデオ再生アプリケーションシナリオ」は、ビデオを再生またはストリーミングするよう構成されたアプリケーションを指す。例えば、「ゲームアプリケーションシナリオ」は、インタラクティブゲームを提供するよう構成されたアプリケーションを指す。各アプリケーションシナリオは、アプリケーションシナリオを特定する対応するアプリケーションシナリオパラメータに関連づけられている。例えば、各アプリケーションシナリオパラメータは、異なる数字を含む。いくつかの実施形態では、アプリケーションシナリオパラメータと、アプリケーションシナリオとの間の対応関係が、既知の記憶位置(例えば、既知のファイル位置またはメモリ内の既知のアドレス)に格納される。例えば、ネイティブアプリケーションシナリオに対応するネイティブアプリケーションシナリオパラメータが1001に設定され;ビデオ再生アプリケーションシナリオに対応するビデオ再生アプリケーションシナリオパラメータが1002に設定され;ゲームアプリケーションシナリオに対応するゲームアプリケーションシナリオパラメータが1003に設定されてよい。他の数字または符号化スキームが用いられてもよい。
様々な実施形態において、スクリーンショットコマンドは、スクリーンショットコマンドを生成して送信したアプリケーションのアプリケーションシナリオに対応するアプリケーションシナリオパラメータを含む。例えば、所定のスクリーンショット生成操作が携帯デバイスを振ることであると仮定すると、ユーザは、携帯デバイスを振ることによって、現在実行中のアプリケーションのスクリーンショットの生成をトリガできる。携帯センサの構成要素(例えば、そこに組み込まれたモーションセンサ)が、振る動作を検出する。いくつかの実施形態では、オペレーティングシステムが、振る動作を検出し、現在実行中のアプリケーションに、そのアプリケーションのアプリケーションシナリオに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを生成させる。後に詳述するように、スクリーンショットコマンドおよびその中のアプリケーションシナリオパラメータは、現在実行中のアプリケーションのスクリーンショットを生成するために用いられる。したがって、現在実行中のアプリケーションに関連するスクリーンショットの生成をトリガする処理が、携帯デバイスのユーザにとって高速かつ簡便になる。
104で、スクリーンショットオブジェクトが、アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて生成される。
様々な実施形態において、対応するスクリーンショットクラスは、アプリケーション開発者によって、アプリケーションのアプリケーションシナリオに対応するように開発されうる。例えば、ネイティブアプリケーションスクリーンショットクラスはネイティブアプリケーションの開発者によって開発され、ビデオ再生アプリケーションスクリーンショットクラスはビデオ再生アプリケーションの開発者によって開発され、ゲームアプリケーションスクリーンショットクラスはゲームアプリケーションの開発者によって開発されうる。これらのクラスは、オブジェクト指向プログラミング言語(Objective−Cなど)を用いて開発できる。いくつかの実施形態において、アプリケーションの開発者は、スクリーンショットSDKに含まれる基底スクリーンショットクラスにオブジェクト指向プログラミング継承を適用することにより、アプリケーションのシナリオに対応するスクリーンショットクラスを生成する。基底スクリーンショットクラスは、異なるアプリケーションシナリオに汎用である。いくつかの実施形態では、基底スクリーンショットクラスからインスタンス化されたスクリーンショットオブジェクトが、デフォルトの設定/フィーチャでアプリケーションのスクリーンショットを生成するよう構成される。継承により、特定のアプリケーションシナリオの開発者が、基底クラスのスクリーンショットフィーチャを利用するだけでなく、自身のアプリケーションシナリオの要求を満たすために、カスタム要素を追加することが可能になる。例えば、アプリケーションシナリオに対応するスクリーンショットクラスのカスタム要素は、スクリーンショットが生成される特定の方法(例えば、サイズ、解像度、色など)と、スクリーンショットが共有される特定の方法(例えば、どのソーシャルメディアプラットフォームと共有するか)とを含んでよい。
様々な実施形態において、携帯デバイスは、各アプリケーションシナリオに対応するスクリーンショットクラスを格納するよう構成されている。様々な実施形態において、携帯デバイスは、さらに、各アプリケーションシナリオに対応するスクリーンショットクラスと、アプリケーションシナリオパラメータとの間の対応関係を格納するよう構成されている。例えば、ネイティブアプリケーションスクリーンショットクラスはネイティブアプリケーションシナリオパラメータ(例えば、1001)に対応し;ビデオ再生アプリケーションスクリーンショットクラスはビデオ再生アプリケーションシナリオパラメータ(例えば、1002)に対応し;ゲームアプリケーションスクリーンショットクラスはゲームアプリケーションシナリオパラメータ(例えば、1003)に対応する。
スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータに基づいて、対応するスクリーンショットクラスを特定し、特定されたスクリーンショットクラスに基づいて、スクリーンショットオブジェクトをインスタンス化できる。例えば、ゲームアプリケーションシナリオパラメータがスクリーンショットコマンドに含まれる場合、ゲームアプリケーションスクリーンショットクラスが特定され、スクリーンショットがそこから生成される。
106で、スクリーンショットオブジェクトを用いて、アプリケーションによって表示されたコンテンツから、スクリーンショットが生成される。
スクリーンショットオブジェクトは、スクリーンショットコマンドを発行した現在実行中のアプリケーションによって表示されたコンテンツのスクリーンショットを生成するために、携帯デバイスで実行中のオペレーティングシステムを呼び出すよう構成されている。いくつかの実施形態において、オペレーティングシステムによって生成されるスクリーンショットは、スクリーンショットオブジェクトがインスタンス化される元になったスクリーンショットクラスのカスタム要素/設定/フィーチャに基づいて生成される。生成されたスクリーンショットは、例えば、画像ファイルを含んでよい。
以下は、スクリーンショットを生成するためにスクリーンショットオブジェクトによって用いられるObjective−Cのコードの一例である。
−(UIImage*)getScreenShot
//目標サイズを有するグラフィックコンテキストを作成する
//実行中のオペレーティングシステムのバージョンに応じて、UIGraphicsBeginImageContextWithOptionsを用いてスケールを考慮するか、もしくは、UIGraphicsBeginImageContextを用いる
CGSize imageSize=[[UIScreen mainScreen]bounds].size;
if(NULL!=UIGraphicsBeginImageContextWithOptions)
UIGraphicsBeginImageContextWithOptions(imageSize,NO,0);
else
UIGraphicsBeginImageContext(imageSize);
CGContextRef context=UIGraphicsGetCurrentContext();
//後ろから前まですべてのウィンドウに繰り返す
for(UIWindow *window in[[UIApplication sharedApplication]windows])
if(![window respondsToSelector:@selector(screen)]||[window screen]==[UIScreen mainScreen])
//−renderInContext:レイヤの座標空間にレンダリングする
//最初にレイヤの形状をグラフィックスコンテキストに適用する
CGContextSaveGState(context);
//ウィンドウのアンカーポイントを中心にコンテキストを配置する
CGContextTranslateCTM(context,[window center].x,[window center].y);
//アンカーポイントを中心にウィンドウの変換を適用する
CGContextConcatCTM(context,[window transform]);
//アンカーポイントの左上の境界の部分だけオフセットする
CGContextTranslateCTM(context,
−[window bounds].size.width*[[window layer] anchorPoint].x,
−[window bounds].size.height*[[window layer] anchorPoint].y);
//レイヤ階層を現在のコンテキストにレンダリングする
[[window layer] renderInContext:context];
//コンテキストを復元する
CGContextRestoreGState(context);
//スクリーンショット画像をリトリーブする
UIImage*image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIInterfaceOrientation orientation=[UIApplication sharedApplication].statusBarOrientation;
if(orientation==UIInterfaceOrientationLandscapeLeft){
image=[UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationRight];
}else if(orientation==UIInterfaceOrientationLandscapeRight){
image = [UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationLeft];
}else if(orientation==UIInterfaceOrientationPortraitUpsideDown){
image=[UIImage imageWithCGImage:image.CGImage scale:image.scale orientation:UIImageOrientationDown];
return image;
例えば、スクリーンショットオブジェクトがゲームアプリケーションスクリーンショットクラスからインスタンス化された場合、そのスクリーンショットオブジェクトは、オペレーティングシステムを呼び出してゲームアプリケーションスクリーンショットクラスのカスタム要素を用いて、ゲームスクリーンのスクリーンショットを生成できる。スクリーンショットオブジェクトがインスタンス化された元のスクリーンショットクラスのカスタム要素に起因して、生成されたスクリーンショットは、オペレーティングシステムによって提供されるデフォルトのスクリーンショット生成技術または基底スクリーンショットクラスから生成されたスクリーンショットオブジェクトを用いて生成されたスクリーンショットとは異なりうる。
108で、スクリーンショットは、表示に向けてアプリケーションに送信される。
スクリーンショット(例えば、画像ファイル)は、スクリーンショットコマンドを発行したアプリケーションに返される。いくつかの実施形態において、アプリケーションは、スクリーンショットを携帯デバイスのスクリーンに表示する。いくつかの実施形態において、アプリケーションは、スクリーンショットに関する1または複数の処理オプションをユーザに提示する。例えば、スクリーンショットに関する処理オプションは、スクリーンショットを格納するオプション、ならびに、プラットフォーム(例えば、ソーシャルメディアプラットフォーム)でまたは少なくとも1人の他のユーザとスクリーンショットを共有するオプションを含む。
以下は、処理100を利用する第1の例である:携帯デバイスのユーザが、現在実行中のビデオ再生アプリケーションによって再生されたビデオを鑑賞しており、現在のビデオスクリーンのスクリーンショットを撮りたいと思うとする。この例において、所定のスクリーンショット生成操作が、携帯デバイスを振ることであると仮定する。したがって、現在のビデオスクリーンのスクリーンショットを生成する際に、ユーザは、スクリーンショットコマンドを生成および送信させるために、携帯デバイスを振るだけでよい。スクリーンショットコマンドは、ビデオ再生アプリケーションシナリオパラメータ(例えば、1002)を含む。スクリーンショットコマンドが、処理100を実行するよう構成されたオペレーティングシステムまたはその他のメカニズムによって受信された後、現在実行中のアプリケーションのアプリケーションシナリオは、スクリーンショットコマンドに含まれるビデオ再生アプリケーションシナリオパラメータ(例えば、1002)に基づいて、ビデオ再生アプリケーションとして特定される。次いで、ビデオ再生アプリケーションシナリオパラメータに対応するビデオ再生アプリケーションスクリーンショットクラスのスクリーンショットオブジェクトが生成され、生成されたスクリーンショットオブジェクトは、現在実行中のアプリケーションの現在のスクリーンのスクリーンショットを生成するために用いられる。次いで、現在実行中のアプリケーションの現在のスクリーンのスクリーンショットは、ビデオ再生アプリケーションに返される。
以下は、処理100を利用する第2の例である:エンドユーザが、現在実行中のゲームアプリケーションによって提供されたゲームをプレイしており、現在のゲームスクリーンのスクリーンショットを撮りたいと思うとする。この例において、所定のスクリーンショット生成操作が、携帯デバイスを振ることであると仮定する。したがって、現在のゲームスクリーンのスクリーンショットを生成する際に、ユーザは、スクリーンショットコマンドを生成および送信させるために、携帯デバイスを振るだけでよい。スクリーンショットコマンドは、ゲームアプリケーションシナリオパラメータ(例えば、1003)を含む。スクリーンショットコマンドが、処理100を実行するよう構成されたオペレーティングシステムまたはその他のメカニズムによって受信された後、現在実行中のアプリケーションのアプリケーションシナリオは、スクリーンショットコマンドに含まれるゲームアプリケーションシナリオパラメータ(例えば、1003)に基づいて、ゲームアプリケーションとして特定される。次いで、ゲームアプリケーションシナリオパラメータに対応するゲームアプリケーションスクリーンショットクラスのスクリーンショットオブジェクトが生成され、生成されたスクリーンショットオブジェクトは、現在実行中のアプリケーションの現在のスクリーンのスクリーンショットを生成するために用いられる。次いで、現在実行中のアプリケーションの現在のスクリーンのスクリーンショットは、ゲームアプリケーションに返される。
図2は、スクリーンショットを生成するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、図1の処理100の工程104、106、および、108は、少なくとも部分的に処理200を用いて実施される。
202で、スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータに対応するアプリケーションシナリオが決定される。アプリケーションから受信されたスクリーンショットコマンドに含まれるアプリケーションシナリオパラメータが抽出される。いくつかの実施形態において、抽出されたアプリケーションシナリオパラメータは、抽出されたアプリケーションシナリオパラメータに対応するアプリケーションシナリオを決定するために、アプリケーションシナリオパラメータとアプリケーションシナリオとの間の格納された対応関係と比較される。処理200の例では、3つの可能なアプリケーションシナリオが、ネイティブアプリケーション、ビデオ再生アプリケーション、または、ゲームアプリケーションを含む。
抽出されたアプリケーションシナリオパラメータがネイティブアプリケーションに対応する場合、制御は工程204に進む。抽出されたアプリケーションシナリオパラメータがビデオ再生アプリケーションに対応する場合、制御は工程208に進む。抽出されたアプリケーションシナリオパラメータがゲームアプリケーションに対応する場合、制御は工程212に進む。
204で、ネイティブアプリケーションスクリーンショットクラスがリトリーブされる。少なくともネイティブアプリケーションスクリーンショットクラスが、ストレージから取得される。いくつかの実施形態において、ネイティブアプリケーションスクリーンショットクラスは、スクリーンショットSDKに含まれる基底スクリーンショットクラスのオブジェクト指向プログラミング継承を用いて、ネイティブアプリケーションの開発者によって作成される。ネイティブアプリケーションスクリーンショットクラスは、基底スクリーンショットクラスに含まれずネイティブアプリケーションからスクリーンショットを生成するよう適合されたさらなるメソッドおよび/または他のフィーチャを含む。ネイティブアプリケーションスクリーンショットクラスは、ネイティブアプリケーションシナリオに関連するアプリケーションからスクリーンショットを生成するためのカスタム設定/フィーチャを含む。ネイティブアプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、携帯デバイスに格納される。ネイティブアプリケーションスクリーンショットクラスが、基底スクリーンショットクラス(例えば、それからの継承)のサブクラスである場合、ネイティブアプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、ストレージからリトリーブされる。
206で、スクリーンショットオブジェクトが、ネイティブアプリケーションスクリーンショットクラスに少なくとも部分的に基づいて生成される。スクリーンショットオブジェクトは、取得されたネイティブアプリケーションスクリーンショットクラスからインスタンス化される。取得されたネイティブアプリケーションスクリーンショットクラスからインスタンス化されたスクリーンショットオブジェクトは、ネイティブアプリケーションスクリーンショットクラスによって提供された任意のカスタム設定/フィーチャで、携帯デバイスで現在実行中のネイティブアプリケーションによって表示されたコンテンツからスクリーンショットを生成するために、携帯デバイスのオペレーティングシステムを呼び出すよう構成される。
208で、ビデオ再生アプリケーションスクリーンショットクラスがリトリーブされる。少なくともビデオ再生アプリケーションスクリーンショットクラスが、ストレージから取得される。いくつかの実施形態において、ビデオ再生アプリケーションスクリーンショットクラスは、スクリーンショットSDKに含まれる基底スクリーンショットクラスのオブジェクト指向プログラミング継承を用いて、ビデオ再生アプリケーションの開発者によって作成される。ビデオ再生アプリケーションスクリーンショットクラスは、基底スクリーンショットクラスに含まれずビデオ再生アプリケーションからスクリーンショットを生成するよう適合されたさらなるメソッドおよび/または他のフィーチャを含む。ビデオ再生アプリケーションスクリーンショットクラスは、ビデオ再生アプリケーションシナリオに関連するアプリケーションからスクリーンショットを生成するためのカスタム設定/フィーチャを含む。ビデオ再生アプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、携帯デバイスに格納される。ビデオ再生アプリケーションスクリーンショットクラスが、基底スクリーンショットクラス(例えば、それからの継承)のサブクラスである場合、ビデオ再生アプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、ストレージからリトリーブされる。
210で、スクリーンショットオブジェクトが、ビデオ再生アプリケーションスクリーンショットクラスに少なくとも部分的に基づいて生成される。スクリーンショットオブジェクトは、取得されたビデオ再生アプリケーションスクリーンショットクラスからインスタンス化される。取得されたビデオ再生アプリケーションスクリーンショットクラスからインスタンス化されたスクリーンショットオブジェクトは、ビデオ再生アプリケーションスクリーンショットクラスによって提供された任意のカスタム設定/フィーチャで、携帯デバイスで現在実行中のビデオ再生アプリケーションによって表示されたコンテンツからスクリーンショットを生成するために、携帯デバイスのオペレーティングシステムを呼び出すよう構成される。
212で、ゲームアプリケーションスクリーンショットクラスがリトリーブされる。少なくともゲームアプリケーションスクリーンショットクラスが、ストレージから取得される。いくつかの実施形態において、ゲームアプリケーションスクリーンショットクラスは、スクリーンショットSDKに含まれる基底スクリーンショットクラスのオブジェクト指向プログラミング継承を用いて、ゲームアプリケーションの開発者によって作成される。ゲームアプリケーションスクリーンショットクラスは、基底スクリーンショットクラスに含まれずゲームアプリケーションからスクリーンショットを生成するよう適合されたさらなるメソッドおよび/または他のフィーチャを含む。ゲームアプリケーションスクリーンショットクラスは、ゲームアプリケーションシナリオに関連するアプリケーションからスクリーンショットを生成するためのカスタム設定/フィーチャを含む。ゲームアプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、携帯デバイスに格納される。ゲームアプリケーションスクリーンショットクラスが、基底スクリーンショットクラス(例えば、それからの継承)のサブクラスである場合、ゲームアプリケーションスクリーンショットクラスおよび基底スクリーンショットクラスの両方が、ストレージからリトリーブされる。
214で、スクリーンショットオブジェクトが、ゲームアプリケーションスクリーンショットクラスに少なくとも部分的に基づいて生成される。スクリーンショットオブジェクトは、取得されたゲームアプリケーションスクリーンショットクラスからインスタンス化される。取得されたゲームアプリケーションスクリーンショットクラスからインスタンス化されたスクリーンショットオブジェクトは、ゲームアプリケーションスクリーンショットクラスによって提供された任意のカスタム設定/フィーチャで、携帯デバイスで現在実行中のゲームアプリケーションによって表示されたコンテンツからスクリーンショットを生成するために、携帯デバイスのオペレーティングシステムを呼び出すよう構成される。
216で、スクリーンショットオブジェクトを用いて、アプリケーションによって表示されたコンテンツから、スクリーンショットが生成される。スクリーンショットオブジェクト(ネイティブアプリケーションスクリーンショットクラス、ビデオ再生アプリケーションスクリーンショットクラス、および、ゲームアプリケーションスクリーンショットクラスの内の1つからインスタンス化されたもの)は、スクリーンショットコマンドを発行した現在実行中のアプリケーションによって表示されたコンテンツのスクリーンショットを生成するために、携帯デバイスで実行中のオペレーティングシステムを呼び出すよう構成される。いくつかの実施形態において、オペレーティングシステムによって生成されるスクリーンショットは、スクリーンショットオブジェクトがインスタンス化される元になったスクリーンショットクラスのカスタム要素/設定/フィーチャに基づいて生成される。スクリーンショットは、例えば、画像ファイルを含んでよい。
218で、スクリーンショットが提示される。生成されたスクリーンショットは、携帯デバイスのユーザが見るために携帯デバイスのスクリーンに提示される。例えば、ユーザは、スクリーンショットを見た後に、スクリーンショットを格納、共有、または、破棄するオプションを提示される。いくつかの実施形態において、スクリーンショットは、最初に、アプリケーションに返され、次いで、アプリケーションによって携帯デバイスに提示される。
220で、任意選択的に、スクリーンショットは、所定の共有操作の検出に少なくとも部分的に基づいて、少なくとも1人のユーザと共有される。携帯デバイスのユーザは、1または複数の他のユーザとスクリーンショットを共有したいと思う場合がある。いくつかの実施形態において、ユーザは、スクリーンショットを共有するために、携帯デバイスを用いて所定の共有操作を実行できる。例えば、所定の共有操作も、スクリーンショットが携帯デバイスのスクリーンに表示されている間に携帯デバイスを振ることであってよい。携帯デバイスに備えられたセンサ(例えば、モーションセンサ)が、所定の共有操作を検出し、それに応じて、スクリーンショットを共有させることができる。例えば、所定の共有操作の検出に応答して、携帯デバイスは、スクリーンショットの共有に関連する1または複数のオプションをユーザに提示するよう構成される。スクリーンショットの共有に関連するオプションの例は、ユーザが、どの他のユーザ(例えば、ユーザとの友達関係を保存された連絡先および/または他のユーザの携帯デバイス)にスクリーンショットを送りたいのか、ならびに/もしくは、ユーザが、どのソーシャルメディアプラットフォームまたはクラウドストレージプラットフォームにスクリーンショットをアップロードしたいのか、を含む。したがって、現在実行中のアプリケーションからスクリーンショットを作成して共有する処理が、携帯デバイスのユーザにとって非常に高速かつ簡単になる。
上述の技術を利用すれば、携帯デバイスのユーザは、アプリケーションがどのアプリケーションシナリオに関連するかに関わらず、携帯デバイスに関する同じ所定のスクリーンショット操作を実行して、現在実行中のアプリケーションによって表示されたコンテンツからスクリーンショットを生成させることができるようになる。さらに、各アプリケーションシナリオに対応するアプリケーションから生成されたスクリーンショットは、そのアプリケーションシナリオに固有のカスタム設定/フィーチャを備えてもよい。したがって、ユーザは、異なるアプリケーションシナリオに関連するアプリケーションのための潜在的に異なる複雑なスクリーンショット生成技術を学ぶために時間および/またはエネルギを費やす必要がない。ユーザは、統一された所定のスクリーンショット操作を学んで利用することで、より簡便かつ楽しいユーザ体験で、様々なアプリケーションシナリオのアプリケーションでスクリーンショットを生成させることができる。
図3は、スクリーンショットを生成するためのシステムの一実施形態を示す図である。この例において、システム300は、第1取得モジュール301、生成モジュール302、および、スクリーンショットモジュール303を備える。
モジュールおよびユニットは、1または複数のプロセッサ上で実行されるソフトウェアコンポーネントとして、設計されたプログラム可能論理デバイスおよび/または特定用途向け集積回路などのハードウェアとして実装されてよく、要素は、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワーク装置など)に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体(光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど)に格納することができるソフトウェア製品の形態で具現化されてよい。モジュールおよびユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。
第1取得モジュール301は、スクリーンショットコマンドをアプリケーションから受信するよう構成されている。アプリケーションは、携帯デバイスで現在実行中であり、携帯デバイスのスクリーンにコンテンツを表示している。スクリーンショットコマンドは、アプリケーションシナリオパラメータを含む。例えば、アプリケーションシナリオパラメータは、ネイティブアプリケーションシナリオパラメータ、ビデオ再生アプリケーションシナリオパラメータ、または、ゲームアプリケーションシナリオパラメータを含む。
生成モジュール302は、アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成するよう構成されている。例えば、ネイティブアプリケーションシナリオパラメータはネイティブアプリケーションスクリーンショットクラスに対応し、ビデオ再生アプリケーションシナリオパラメータはビデオ再生アプリケーションスクリーンショットクラスに対応し、ゲームアプリケーションシナリオパラメータはゲームアプリケーションスクリーンショットクラスに対応する。
スクリーンショットモジュール303は、スクリーンショットオブジェクトを用いて、アプリケーションによって表示されたコンテンツからスクリーンショットを生成するよう構成されている。いくつかの実施形態において、スクリーンショットモジュール303は、スクリーンショットをアプリケーションに送信するよう構成されている。
いくつかの実施形態において、第1取得モジュール301は、さらに以下を含む:
所定のスクリーンショット操作の検出に応答して、スクリーンショットコマンドを生成するよう構成された取得ユニット。例えば、所定のスクリーンショット操作は、携帯デバイスを振ることを含む。
いくつかの実施形態において、生成モジュール302は、さらに以下を含む:
スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータに関連するアプリケーションシナリオを決定するよう構成された評価ユニット。
スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータがネイティブアプリケーションシナリオパラメータである場合にネイティブアプリケーションスクリーンショットクラスを取得するよう構成された第1ルックアップユニット。
ネイティブアプリケーションスクリーンショットクラスからスクリーンショットオブジェクトを生成するよう構成された第1生成ユニット。
それに応じて、いくつかの実施形態において、スクリーンショットモジュール303は、さらに以下を含む:
ネイティブアプリケーションスクリーンショットクラスから生成されたスクリーンショットオブジェクトを用いて、現在実行中のネイティブアプリケーションによって表示されたコンテンツからスクリーンショットを生成するよう構成された第1スクリーンショットユニット。いくつかの実施形態において、スクリーンショットオブジェクトは、スクリーンショットを生成するために携帯デバイスのオペレーティングシステムを呼び出すことによって、スクリーンショットを生成するよう構成される。
いくつかの実施形態において、生成モジュール302は、さらに以下を含む:
スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータがビデオ再生アプリケーションシナリオパラメータである場合にビデオ再生アプリケーションスクリーンショットクラスを取得するよう構成された第2ルックアップユニット。
ビデオ再生アプリケーションスクリーンショットクラスからスクリーンショットオブジェクトを生成するよう構成された第2生成ユニット。
いくつかの実施形態において、スクリーンショットモジュール303は、さらに以下を含む:
ビデオ再生アプリケーションスクリーンショットクラスから生成されたスクリーンショットオブジェクトを用いて、現在実行中のビデオ再生アプリケーションによって表示されたコンテンツからスクリーンショットを生成するよう構成された第2スクリーンショットユニット。いくつかの実施形態において、スクリーンショットオブジェクトは、スクリーンショットを生成するために携帯デバイスのオペレーティングシステムを呼び出すことによって、スクリーンショットを生成するよう構成される。
また、生成モジュール302は、さらに以下を含む:
スクリーンショットコマンドに含まれるアプリケーションシナリオパラメータがゲームアプリケーションシナリオパラメータである場合にゲームアプリケーションスクリーンショットクラスを取得するよう構成された第3ルックアップユニット。
ゲームアプリケーションスクリーンショットクラスからスクリーンショットオブジェクトを生成するよう構成された第3生成ユニット。
それに応じて、いくつかの実施形態において、スクリーンショットモジュール303は、さらに以下を含む:
ゲームアプリケーションスクリーンショットクラスから生成されたスクリーンショットオブジェクトを用いて、現在実行中のゲームアプリケーションによって表示されたコンテンツからスクリーンショットを生成するよう構成された第3スクリーンショットユニット。いくつかの実施形態において、スクリーンショットオブジェクトは、スクリーンショットを生成するために携帯デバイスのオペレーティングシステムを呼び出すことによって、スクリーンショットを生成するよう構成される。
図4は、スクリーンショットを生成するためのシステムの一実施形態を示す図である。この例において、システム400は、第1取得モジュール401、生成モジュール402、スクリーンショットモジュール403、第2取得モジュール404、および、共有モジュール405を備える。
モジュールおよびユニットは、1または複数のプロセッサ上で実行されるソフトウェアコンポーネントとして、設計されたプログラム可能論理デバイスおよび/または特定用途向け集積回路などのハードウェアとして実装されてよく、要素は、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワーク装置など)に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体(光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど)に格納することができるソフトウェア製品の形態で具現化されてよい。モジュールおよびユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。
第1取得モジュール401、生成モジュール402、および、スクリーンショットモジュール403は、それぞれ、図3のシステム300の第1取得モジュール301、生成モジュール302、および、スクリーンショットモジュール303と同様に実装されてよい。
第2取得モジュール404は、所定の共有操作を検出するよう構成されている。例えば、所定の共有操作は、携帯デバイスを振ることを含む。
共有モジュール405は、スクリーンショットオブジェクトによって生成されたスクリーンショットを共有するよう構成されている。
図5は、スクリーンショットを生成するためにプログラムされたコンピュータシステムの一実施形態を示す機能図である。明らかに、スクリーンショットを生成するために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。以下に述べるような様々なサブシステムを備えるコンピュータシステム500は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)とも呼ばれる)502を備える。例えば、プロセッサ502は、シングルチッププロセッサまたはマルチプロセッサによって実装できる。いくつかの実施形態において、プロセッサ502は、コンピュータシステム500の動作を制御する汎用デジタルプロセッサである。メモリ510から読み出された命令を用いて、プロセッサ502は、入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ518)上でのデータの出力および表示を制御する。いくつかの実施形態において、プロセッサ502は、スクリーンショットを生成することを含む、および/または、スクリーンショットを生成するために用いられる。いくつかの実施形態では、モーションセンサ522が、所定のスクリーンショット操作または所定の共有操作を含むユーザ操作を検出するよう構成される。
プロセッサ502は、メモリ510と双方向的に接続されており、メモリ510は、第1のプライマリストレージ(通例は、ランダムアクセスメモリ(RAM))および第2のプライマリストレージ領域(通例は、読み出し専用メモリ(ROM))を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ502上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ502によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ510は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ502は、頻繁に必要になるデータをキャッシュメモリ(図示せず)に直接的かつ非常に迅速に格納し取り出すことができる。
着脱可能マスストレージデバイス512が、コンピュータシステム500にさらなるデータ記憶容量を提供しており、プロセッサ502に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)に接続されている。例えば、ストレージ512は、磁気テープ、フラッシュメモリ、PCカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ520も、例えば、さらなるデータ記憶容量を提供しうる。固定マスストレージ520の最も一般的な例は、ハードディスクドライブである。マスストレージ512、520は、一般に、プロセッサ502によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ512および520に保持された情報は、必要であれば、仮想メモリとしてのメモリ510(例えば、RAM)の一部に標準的な方式で組み込まれうることが理解される。
プロセッサ502がストレージサブシステムにアクセスできるようにすることに加えて、バス514が、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイ518、ネットワークインターフェース516、キーボード504、および、ポインティングデバイス508、ならびに、必要に応じて、補助入力/出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス508は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するのに有用である。
ネットワークインターフェース516は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ502を接続することを可能にする。例えば、ネットワークインターフェース516を通して、プロセッサ502は、方法/処理ステップを実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信されたり、別のネットワークへ出力されたりしうる。インターフェースカード(または同様のデバイス)と、プロセッサ502によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム500を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示された様々な処理の実施形態は、プロセッサ502上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース516を通してプロセッサ502に接続されてもよい。
補助I/Oデバイスインターフェース(図示せず)が、コンピュータシステム500と共に用いられてよい。補助I/Oデバイスインターフェースは、プロセッサ502がデータを送信すること、ならびに、より典型的には、他のデバイス(マイクロフォン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
上述の記載では、本願のいくつかの実施形態を提示して説明している。ただし、上述のように、本願は、本明細書に開示された形態に限定されないと理解されるべきである。開示の事実は、別の実施形態を除外するものと見なされない。むしろ、開示された形態は、様々な他の組み合わせ、変形、および、環境で利用されてもよい。さらに、本明細書に記載の本発明の概念的範囲を保持しつつ、関連分野の技術または知識もしくは上述のガイドラインを用いて変更することもできる。本願の精神および範囲から逸脱しない限りは、当業者によってなされる変更も変形も、本願に添付の特許請求の範囲内にある。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
[適用例1]
システムであって、
1または複数のプロセッサであって、
アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信し、
前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成し、
前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成し、
表示に向けて前記スクリーンショットを前記アプリケーションに送信するよう構成された、1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成された1または複数のメモリと、
を備える、システム。
[適用例2]
適用例1に記載のシステムであって、前記スクリーンショットコマンドは、所定のスクリーンショット操作の検出に応答して生成される、システム。
[適用例3]
適用例1に記載のシステムであって、前記アプリケーションは、携帯デバイスで実行中である、システム。
[適用例4]
適用例1に記載のシステムであって、前記アプリケーションシナリオパラメータは、ネイティブアプリケーションシナリオパラメータ、ビデオ再生アプリケーションシナリオパラメータ、または、ゲームアプリケーションシナリオパラメータの内の1または複数を含む、システム。
[適用例5]
適用例1に記載のシステムであって、前記アプリケーションシナリオパラメータがネイティブアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ネイティブアプリケーションスクリーンショットクラスを含む、システム。
[適用例6]
適用例1に記載のシステムであって、前記アプリケーションシナリオパラメータがビデオ再生アプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ビデオ再生アプリケーションスクリーンショットクラスを含む、システム。
[適用例7]
適用例1に記載のシステムであって、前記アプリケーションシナリオパラメータがゲームアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ゲームアプリケーションスクリーンショットクラスを含む、システム。
[適用例8]
適用例1に記載のシステムであって、前記アプリケーションシナリオパラメータに対応する前記スクリーンショットクラスは、基底スクリーンショットクラスから導出される、システム。
[適用例9]
適用例1に記載のシステムであって、前記スクリーンショットオブジェクトは、前記スクリーンショットを生成するために、オペレーティングシステムを呼び出すよう構成される、システム。
[適用例10]
適用例1に記載のシステムであって、前記1または複数のプロセッサは、さらに、所定の共有操作を検出するよう構成されている、システム。
[適用例11]
適用例10に記載のシステムであって、前記1または複数のプロセッサは、さらに、少なくとも1人のユーザと前記スクリーンショットを共有するよう構成されている、システム。
[適用例12]
方法であって、
アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信する工程と、
1または複数のプロセッサを用いて、前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成する工程と、
前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成する工程と、
表示に向けて前記スクリーンショットを前記アプリケーションに送信する工程と、
を備える、方法。
[適用例13]
適用例12に記載の方法であって、前記スクリーンショットコマンドは、所定のスクリーンショット操作の検出に応答して生成される、方法。
[適用例14]
適用例12に記載の方法であって、前記アプリケーションは、携帯デバイスで実行中である、方法。
[適用例15]
適用例12に記載の方法であって、前記アプリケーションシナリオパラメータは、ネイティブアプリケーションシナリオパラメータ、ビデオ再生アプリケーションシナリオパラメータ、または、ゲームアプリケーションシナリオパラメータの内の1または複数を含む、方法。
[適用例16]
適用例12に記載の方法であって、前記アプリケーションシナリオパラメータがネイティブアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ネイティブアプリケーションスクリーンショットクラスを含む、方法。
[適用例17]
適用例12に記載の方法であって、前記アプリケーションシナリオパラメータがビデオ再生アプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ビデオ再生アプリケーションスクリーンショットクラスを含む、方法。
[適用例18]
適用例12に記載の方法であって、前記アプリケーションシナリオパラメータがゲームアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ゲームアプリケーションスクリーンショットクラスを含む、方法。
[適用例19]
適用例12に記載の方法であって、前記アプリケーションシナリオパラメータに対応する前記スクリーンショットクラスは、基底スクリーンショットクラスから導出される、方法。
[適用例20]
コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信するためのコンピュータ命令と、
前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成するためのコンピュータ命令と、
前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成するためのコンピュータ命令と、
表示に向けて前記スクリーンショットを前記アプリケーションに送信するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。

Claims (20)

  1. システムであって、
    1または複数のプロセッサであって、
    アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信し、
    前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成し、
    前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成し、
    表示に向けて前記スクリーンショットを前記アプリケーションに送信するよう構成された、1または複数のプロセッサと、
    前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成された1または複数のメモリと、
    を備える、システム。
  2. 請求項1に記載のシステムであって、前記スクリーンショットコマンドは、所定のスクリーンショット操作の検出に応答して生成される、システム。
  3. 請求項1に記載のシステムであって、前記アプリケーションは、携帯デバイスで実行中である、システム。
  4. 請求項1に記載のシステムであって、前記アプリケーションシナリオパラメータは、ネイティブアプリケーションシナリオパラメータ、ビデオ再生アプリケーションシナリオパラメータ、または、ゲームアプリケーションシナリオパラメータの内の1または複数を含む、システム。
  5. 請求項1に記載のシステムであって、前記アプリケーションシナリオパラメータがネイティブアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ネイティブアプリケーションスクリーンショットクラスを含む、システム。
  6. 請求項1に記載のシステムであって、前記アプリケーションシナリオパラメータがビデオ再生アプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ビデオ再生アプリケーションスクリーンショットクラスを含む、システム。
  7. 請求項1に記載のシステムであって、前記アプリケーションシナリオパラメータがゲームアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ゲームアプリケーションスクリーンショットクラスを含む、システム。
  8. 請求項1に記載のシステムであって、前記アプリケーションシナリオパラメータに対応する前記スクリーンショットクラスは、基底スクリーンショットクラスから導出される、システム。
  9. 請求項1に記載のシステムであって、前記スクリーンショットオブジェクトは、前記スクリーンショットを生成するために、オペレーティングシステムを呼び出すよう構成される、システム。
  10. 請求項1に記載のシステムであって、前記1または複数のプロセッサは、さらに、所定の共有操作を検出するよう構成されている、システム。
  11. 請求項10に記載のシステムであって、前記1または複数のプロセッサは、さらに、少なくとも1人のユーザと前記スクリーンショットを共有するよう構成されている、システム。
  12. 方法であって、
    アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信する工程と、
    1または複数のプロセッサを用いて、前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成する工程と、
    前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成する工程と、
    表示に向けて前記スクリーンショットを前記アプリケーションに送信する工程と、
    を備える、方法。
  13. 請求項12に記載の方法であって、前記スクリーンショットコマンドは、所定のスクリーンショット操作の検出に応答して生成される、方法。
  14. 請求項12に記載の方法であって、前記アプリケーションは、携帯デバイスで実行中である、方法。
  15. 請求項12に記載の方法であって、前記アプリケーションシナリオパラメータは、ネイティブアプリケーションシナリオパラメータ、ビデオ再生アプリケーションシナリオパラメータ、または、ゲームアプリケーションシナリオパラメータの内の1または複数を含む、方法。
  16. 請求項12に記載の方法であって、前記アプリケーションシナリオパラメータがネイティブアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ネイティブアプリケーションスクリーンショットクラスを含む、方法。
  17. 請求項12に記載の方法であって、前記アプリケーションシナリオパラメータがビデオ再生アプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ビデオ再生アプリケーションスクリーンショットクラスを含む、方法。
  18. 請求項12に記載の方法であって、前記アプリケーションシナリオパラメータがゲームアプリケーションシナリオパラメータを含む場合、前記スクリーンショットクラスは、ゲームアプリケーションスクリーンショットクラスを含む、方法。
  19. 請求項12に記載の方法であって、前記アプリケーションシナリオパラメータに対応する前記スクリーンショットクラスは、基底スクリーンショットクラスから導出される、方法。
  20. コンピュータプログラムであって
    アプリケーションに対応するアプリケーションシナリオパラメータを含むスクリーンショットコマンドを前記アプリケーションから受信するための機能と、
    前記アプリケーションシナリオパラメータに対応するスクリーンショットクラスに少なくとも部分的に基づいて、スクリーンショットオブジェクトを生成するための機能と、
    前記スクリーンショットオブジェクトを用いて、前記アプリケーションによって表示されたコンテンツからスクリーンショットを生成するための機能と、
    表示に向けて前記スクリーンショットを前記アプリケーションに送信するための機能と、
    コンピュータに実現させるコンピュータプログラム。
JP2016556826A 2014-04-11 2015-04-09 スクリーンショットの生成 Active JP6185675B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201410146004.0 2014-04-11
CN201410146004.0A CN104978117B (zh) 2014-04-11 2014-04-11 一种实现截屏的方法和装置
US14/681,412 2015-04-08
US14/681,412 US20150294433A1 (en) 2014-04-11 2015-04-08 Generating a screenshot
PCT/US2015/025118 WO2015157522A1 (en) 2014-04-11 2015-04-09 Generating a screenshot

Publications (2)

Publication Number Publication Date
JP2017513106A JP2017513106A (ja) 2017-05-25
JP6185675B2 true JP6185675B2 (ja) 2017-08-23

Family

ID=54265479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016556826A Active JP6185675B2 (ja) 2014-04-11 2015-04-09 スクリーンショットの生成

Country Status (8)

Country Link
US (1) US20150294433A1 (ja)
EP (1) EP3129871B1 (ja)
JP (1) JP6185675B2 (ja)
KR (1) KR101857946B1 (ja)
CN (1) CN104978117B (ja)
HK (1) HK1213333A1 (ja)
TW (1) TWI629639B (ja)
WO (1) WO2015157522A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257133B2 (en) * 2014-12-19 2019-04-09 Oath Inc. Content selection
WO2016172944A1 (zh) * 2015-04-30 2016-11-03 华为技术有限公司 终端的界面显示方法和终端
CN105338399A (zh) * 2015-10-29 2016-02-17 小米科技有限责任公司 图像获取方法及装置
CN105892635A (zh) * 2015-11-18 2016-08-24 乐视网信息技术(北京)股份有限公司 截图实现方法、装置及电子设备
CN105487748B (zh) * 2015-11-20 2020-12-18 腾讯科技(深圳)有限公司 显示图标的方法和装置、存储介质以及计算机终端
KR102478952B1 (ko) * 2016-01-05 2022-12-20 삼성전자주식회사 영상 저장을 위한 방법 및 그 장치
CN105718163A (zh) * 2016-01-20 2016-06-29 广东欧珀移动通信有限公司 一种移动终端的截屏方法和装置
CN105828167A (zh) * 2016-03-04 2016-08-03 乐视网信息技术(北京)股份有限公司 截屏分享方法及装置
EP3239829B1 (en) * 2016-04-28 2020-05-20 Chiun Mai Communication Systems, Inc. Method for managing multiple types of data
CN105979382A (zh) * 2016-06-01 2016-09-28 乐视控股(北京)有限公司 一种通过截图分享视频的方法及装置
CN105897567B (zh) * 2016-06-20 2019-01-11 财付通支付科技有限公司 一种信息共享的方法及装置
CN106302760B (zh) * 2016-08-19 2019-07-09 广州视睿电子科技有限公司 桌面截屏控制方法及系统
US10212113B2 (en) * 2016-09-19 2019-02-19 Google Llc Uniform resource identifier and image sharing for contextual information display
US11003331B2 (en) 2016-10-18 2021-05-11 Huawei Technologies Co., Ltd. Screen capturing method and terminal, and screenshot reading method and terminal
JP6930131B2 (ja) * 2017-02-24 2021-09-01 日本電気株式会社 端末装置、処理方法及びプログラム
CN107241644B (zh) * 2017-05-31 2018-09-07 腾讯科技(深圳)有限公司 一种视频直播过程中的图像处理方法和装置
CN107329670A (zh) * 2017-06-23 2017-11-07 上海展扬通信技术有限公司 一种截屏操作方法、装置及终端
CN108525304B (zh) * 2018-04-16 2021-06-22 网易(杭州)网络有限公司 一种图像分析方法、装置、存储介质及电子装置
CN109032470B (zh) * 2018-07-11 2021-03-26 Oppo(重庆)智能科技有限公司 截图方法、装置、终端及计算机可读存储介质
CN110297925B (zh) * 2019-06-30 2022-05-31 联想(北京)有限公司 一种数据处理方法、装置及电子设备
US11386622B1 (en) * 2019-08-23 2022-07-12 Amazon Technologies, Inc. Physical items as basis for augmented reality applications
CN110764852B (zh) * 2019-08-27 2023-08-22 努比亚技术有限公司 一种截图方法、终端及计算机可读存储介质
US11194983B1 (en) 2019-09-05 2021-12-07 Amazon Technologies, Inc. Profile based augmented reality applications based on information tags
JP6953582B1 (ja) * 2020-05-22 2021-10-27 株式会社Cygames コンテンツ再生プログラム及びコンテンツ再生装置
CN113315871B (zh) * 2021-05-25 2022-11-22 广州三星通信技术研究有限公司 移动终端及其操作方法
CN115706820A (zh) * 2021-08-10 2023-02-17 北京小米移动软件有限公司 录屏方法、装置及终端
CN116048350B (zh) * 2022-07-08 2023-09-08 荣耀终端有限公司 一种截屏方法及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684207B1 (en) * 2000-08-01 2004-01-27 Oracle International Corp. System and method for online analytical processing
JP4829443B2 (ja) * 2001-09-20 2011-12-07 キヤノン株式会社 受信装置、受信方法および記録媒体
US20030182399A1 (en) * 2002-03-21 2003-09-25 Silber Matthew A. Method and apparatus for monitoring web access
US20070300179A1 (en) * 2006-06-27 2007-12-27 Observe It Ltd. User-application interaction recording
US7966397B2 (en) * 2006-06-30 2011-06-21 Verint Americas Inc. Distributive data capture
US8984390B2 (en) * 2008-09-15 2015-03-17 Palantir Technologies, Inc. One-click sharing for screenshots and related documents
US8924884B2 (en) * 2010-12-06 2014-12-30 International Business Machines Corporation Automatically capturing and annotating content
US10748233B2 (en) * 2011-06-14 2020-08-18 Intel Corporation Full screen processing in multi-application environments
CN202444580U (zh) * 2011-11-16 2012-09-19 王白 一种获得电视节目截屏图片的系统,终端和服务器
CN102638774A (zh) * 2012-03-31 2012-08-15 王方淇 一种移动终端数据同步分享的方法和系统
US20140022269A1 (en) * 2012-07-18 2014-01-23 Tencent Technology (Shenzhen) Company Limited Method and device for obtaining screenshots from mobile terminals
WO2014055626A1 (en) * 2012-10-05 2014-04-10 Citrix Systems, Inc. Capturing and sharing visual content via an application

Also Published As

Publication number Publication date
US20150294433A1 (en) 2015-10-15
KR20160122203A (ko) 2016-10-21
TW201539321A (zh) 2015-10-16
HK1213333A1 (zh) 2016-06-30
CN104978117B (zh) 2018-11-09
TWI629639B (zh) 2018-07-11
CN104978117A (zh) 2015-10-14
KR101857946B1 (ko) 2018-05-16
EP3129871A1 (en) 2017-02-15
EP3129871B1 (en) 2020-03-04
JP2017513106A (ja) 2017-05-25
WO2015157522A1 (en) 2015-10-15

Similar Documents

Publication Publication Date Title
JP6185675B2 (ja) スクリーンショットの生成
CN110581947B (zh) 在虚拟现实内拍照
US10372238B2 (en) User terminal device and method for controlling the user terminal device thereof
US10191612B2 (en) Three-dimensional virtualization
WO2020019666A1 (zh) 人脸特效的多人脸跟踪方法、装置和电子设备
US20150149960A1 (en) Method of generating panorama image, computer-readable storage medium having recorded thereon the method, and panorama image generating device
CN104267931B (zh) 一种信息处理方法及电子设备
US20180196584A1 (en) Execution of multiple applications on a device
US10204598B2 (en) Predictive pre-decoding of encoded media item
WO2024032517A1 (zh) 用于处理手势事件的方法、装置、设备和存储介质
WO2016178850A1 (en) Gpu operation for content rendering
CN110827412A (zh) 自适应平面的方法、装置和计算机可读存储介质
US10679321B2 (en) Efficient release of target memory
US10585485B1 (en) Controlling content zoom level based on user head movement
CN109416638B (zh) 可定制的紧凑叠加窗口
CN110825280A (zh) 控制虚拟物体位置移动的方法、装置和计算机可读存储介质
CN107025051B (zh) 信息嵌入方法、装置和客户端设备
US10552022B2 (en) Display control method, apparatus, and non-transitory computer-readable recording medium
Ledo et al. Astral: Prototyping Mobile and IoT Interactive Behaviours via Streaming and Input Remapping
US12014019B2 (en) Display method, apparatus and computer readable storage medium
CN116661656B (zh) 画面交互方法及摄像展示系统
Lu et al. Interactive augmented reality application design based on mobile terminal
CN106231190A (zh) 一种基于前后摄像头双开的成像方法及终端
Procházka et al. Mainstreaming gesture based interfaces
JP2022137023A (ja) プログラム、情報処理装置、および方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170727

R150 Certificate of patent or registration of utility model

Ref document number: 6185675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250