以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の一実施形態であるデバイス制御アプリケーション14b(以下、本アプリ14bとも記述する)が搭載された携帯端末10の電気的構成を示すブロック図である。
携帯端末10は、携帯電話網100を介して、他の装置との間で音声通話を行い、またはインターネットを利用可能な携帯電話機である。また、携帯端末10は、アクセスポイント50を介したインフラストラクチャモードにより、デバイス30との間で無線通信を行う。また携帯端末10は、アクセスポイント50およびインターネット51を介して、サーバ装置52との間で各種の通信を実行する。サーバ装置52は、画像データなどの各種のデータを記憶することが可能な装置である。
携帯端末10には、CPU11、ROM12、RAM13、フラッシュメモリ14、無線LAN送受信部15、操作キー16、タッチパネル17、液晶表示装置18(以下、LCD18とも記述する)、メモリカードインターフェース19(以下、メモリカードI/F19とも記述する)、音声入出力部21、電話網通信部22が設けられる。これらは、バスライン23を介して互いに接続されている。
CPU11は、ROM12等に記憶される固定値やプログラム等に従って、バスライン23と接続された各部を制御する。ROM12は、書換不能な不揮発性のメモリであって、RAM13は、書換可能な揮発性のメモリである。フラッシュメモリ14は、書換可能な不揮発性のメモリであり、オペレーティングシステム14a(以下、OS14aとも記述する)や本アプリ14b、その他の複数種類のアプリケーション(図示せず)が格納される。CPU11、ROM12、フラッシュメモリ14などは、コンピュータが読み取り可能なストレージ媒体であり、non-transitoryな媒体である。インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、non-transitoryな媒体には含まれない。
OS14aは、携帯端末10の標準機能を実現するための基本ソフトウェアである。OS14aは、本実施形態の場合、アンドロイド(登録商標)OSである。本アプリ14bは、デバイス30のベンダによって提供されるアプリケーションであって、ユーザによって携帯端末10にインストールされる。
本明細書における記載上の注意点を説明する。以降、アプリケーションやオペレーティングシステムなどのプログラムを実行するCPU11のことを、単にプログラム名で記載する場合もある。例えば「アプリケーション」という記載が、「アプリケーションを実行するCPU11」を意味する場合もある。 本明細書において、「携帯端末10のCPU11が、各種の情報を受信する」という記載は、「携帯端末10のCPU11が、無線LAN送受信部15を介して各種の情報を取得する」という技術内容を含んでいるものとする。また、「携帯端末10のCPU11が、各種の情報を送信する」という記載は、「携帯端末10のCPU11が、無線LAN送受信部15を介して各種の情報を出力する」という技術内容を含んでいるものとする。
携帯端末10に搭載されたOS14aのAPIをアプリケーションが用いることにより、アプリケーション間でデータを受け渡す共有機能(インテント機能とも呼ばれる)が実現される。また、携帯端末10に搭載された本アプリ14bは、パーソナルコンピュータなどを経由せずに、携帯端末10から直接、デバイス30の印刷機能およびスキャン機能を利用するためのアプリケーションである。特に、本アプリ14bは、デバイス30から取得した画像データを、共有機能によって他のアプリケーションに渡す場合に、ユーザビリティが良いように構成されている。
無線LAN送受信部15は、IEEE802.11b/gの規格に準拠した無線LANにより、携帯端末10と他の機器とをWi−Fi(登録商標)接続する回路である。この無線LAN送受信部15により、アクセスポイント50を介して、デバイス30との間が無線接続される。また、アクセスポイント50およびインターネット51を介して、サーバ装置52との間が接続される。
操作キー16は、携帯端末10の筺体に設けられたハードキーであり、携帯端末10に設定情報や指示を入力する。タッチパネル17は、LCD18に重ねて設けられ、携帯端末10に設定情報や指示を入力する。LCD18は、各種の操作画面や、選択されたデータに基づく画像を表示する。メモリカードI/F19は、不揮発性のメモリカード20が装着されるインターフェースであって、メモリカード20に対するデータの書き込み又は読み出しを制御する。メモリカード20は、一例として、SDカード(登録商標)である。本実施形態の場合、本アプリ14bは、デバイス30から受信した画像データを、PDFフォーマットのファイル(以下、PDFデータとも記述する)またはJPEGフォーマットのファイル(以下、JPEGデータとも記述する)に変換し、メモリカード20に格納する。PDFデータのフォーマットは、マルチページを含む1つのPDFデータを作成することができるデータ構造である。JPEGデータのフォーマットは、マルチページを含ませることができないデータ構造である。ここでマルチページとは、複数ページのデータである。
音声入出力部21は、マイクやスピーカなどで構成された音声入出力用デバイスであり、電話網通信部22は、携帯電話網100を介した通信を行うための回路である。携帯電話網100は、IMT−2000(International Mobile Telecommunication-2000の略)方式の通信網であって、携帯端末10による音声通話の利用を可能にする。
なお、携帯端末10にインストールされた各アプリケーションは、OS14aのAPIを呼び出して、無線LAN送受信部15、操作キー16、タッチパネル17、LCD18、メモリカードI/F19、音声入出力部21、電話網通信部22など、携帯端末10の各構成に受け渡したいデータをOS14aに出力する。各アプリケーションには、本アプリ14bが含まれる。すなわち、各アプリケーションは、OS14aのAPIを呼び出すことによって、携帯端末10の各構成を制御する。また、各アプリケーションは、OS14aのAPIを呼び出して、携帯端末10の各構成が出力するデータや各構成の状態を示すデータをOS14aから取得する。すなわち、OS14aのAPIを呼び出すことによって、携帯端末10の各構成の状態を示すデータをOS14aから取得する。携帯端末10の各構成の状態は、携帯端末10への操作入力の状態も含んでいる。また、OS14aは、携帯端末10の各構成が出力するデータや各構成の状態を示すデータを、定期的に、あるいは各構成の状態変化の都度、各アプリケーションに通知することもある。すなわち、各アプリケーションは、OS14aからの通知を受けることによって、携帯端末10の各構成の状態を示すデータをOS14aから取得する。
デバイス30は、プリンタ機能、スキャン機能、コピー機能などを有する複合機であって、携帯端末10の無線LAN送受信部15と同様に構成された無線LAN送受信部(図示せず)を備え、アクセスポイント50を介した無線通信により、携帯端末10とWi−Fi接続される。また、デバイス30は、携帯端末10の本アプリ14bにより制御され、携帯端末10から送信されてくるデータに基づいて画像を印刷し、または、原稿を読み取って画像データを生成し、携帯端末10へ送信する。デバイス30はADF(Auto Document Feederの略)を備えていても良い。複数の原稿をADFにセットし、1のスキャン実行指示をデバイス30に入力することで、複数の原稿が自動的にスキャンされ、複数の画像データが生成されるとしてもよい。ここで、1のスキャン実行指示に応じて生成される、複数の画像データの集合を、「画像データセット」と定義する。また、画像データセットに含まれている1または複数の画像データの各々には、画像データの特性が対応付けられていてもよい。画像データの特性としては、画像サイズ(例:A4サイズ、L版サイズなど)、画像種類(例:文書画像、写真画像など)、等が挙げられる。画像データの特性は、画像データのヘッダ情報に含まれていてもよい。
ここで、「データ」と「情報」の文言の定義を記載する。「データ」と「情報」では「情報」を「データ」の上位概念として用いている。そのため、「Aデータ」を「A情報」と言い換えてもよい。また、「Aデータ」から複製された、または、変換された「Bデータ」は、「Aデータ」と同等の意味を持って使用される限り「A情報」である。
図2を参照して、携帯端末10のOS14aのAPIを用いることにより実現される共有機能について説明する。共有機能は、データ出力元のアプリケーションが出力するデータを、データ出力先として選択されたアプリケーションに処理させる機能である。共有機能としては、暗黙的共有機能と、明示的共有機能とがある。図2(a)は、暗黙的共有機能を説明する図であって、データ出力元のアプリケーション(以下、共有元アプリ60とも記述する)が、暗黙的共有機能の実行を、OS14aに要求した場合における処理の流れを示している。
図2(a)に示すように、暗黙的共有機能において、共有元アプリ60は、OS14aのAPIを呼び出し、共有機能の実行を要求する(1)。この要求は、共有機能により他のアプリケーションに処理させようとするデータ(以下、共有データとも記述する)のURI(Uniform Resource Identifierの略)と、タイプと、アクションとを含む。URIは、共有データの所在を示す情報であり、本実施形態の場合、ファイルパスで構成される。タイプは、共有データのフォーマットを指定する情報であり、アクションは、処理の種類を指定する情報である。OS14aは、共有元アプリ60から通知されるタイプとアクションとを検索条件として、携帯端末10にインストールされた全てのアプリケーション(以下、全てのアプリ62とも記述する)の中から、データ出力先のアプリケーション(以下、共有先アプリ64とも記述する)となり得る候補を検索する(2)。
携帯端末10にインストールされた各アプリケーションは、自アプリケーションにより処理可能なフォーマットを指定するタイプと、実行可能な処理の種類を指定するアクションとを予め宣言している。よって、OS14aは、共有元アプリ60から通知されたタイプとアクションとを検索条件として全てのアプリ62を検索する。そして、共有元アプリ60から通知されたタイプが指定するフォーマットのデータを処理可能であり、且つ、共有元アプリ60から通知されたアクションが指定する処理の種類に対応したアプリケーションを抽出し、その識別情報を取得する(3)。ただし、各アプリケーションが宣言するタイプ、アクションは、各アプリケーションの開発者が自由に設定できるものである。したがって、実際には実行できない処理を、各アプリケーションがアクションとして宣言している場合があり得る。よって、「共有元アプリ60から通知されたアクションが指定する処理の種類に対応したアプリケーション」とは、共有元アプリ60から通知されたアクションと、同一のアクションを宣言しているアプリケーションであることを意味しており、実際にその処理を実行可能であることまでを要求しない。
次に、OS14aは、検索により発見されたアプリケーション、すなわち、共有先アプリ64の候補であるアプリケーションの一覧を、LCD18に表示させる(4)。そして、ユーザが一覧からいずれかを選択すると(5)、OS14aは、選択された共有先アプリ64を起動して、その共有先アプリ64の画面をフォアグラウンド(前面とも呼ぶ)とし、共有元アプリ60から通知された共有データのURIと、タイプと、アクションとを通知する(6)。
その結果、ユーザにより選択された共有先アプリ64の画面がフォアグラウンドに表示され、共有先アプリ64は、通知されたURIで特定される共有データにアクセスし、アクションの値に従った処理を行う。例えば表示出力する、電子メールに添付して送信する、編集するなど、その共有先アプリ64で実行可能な各種の処理を行う。
図2(b)は、明示的共有機能を説明する図であって、共有元アプリ60が、明示的共有機能の実行をOS14aに要求した場合における処理の流れを示している。
図2(b)に示すように、明示的共有機能において、共有元アプリ60は、OS14aのAPIを呼び出し、共有先アプリ64の候補の一覧の表示を要求する(21)。この要求は、共有データのタイプとアクションとを含む。OS14aは、共有元アプリ60から通知されるタイプとアクションとを検索条件として、携帯端末10にインストールされた全てのアプリ62の中から、共有先アプリ64の候補を検索し(22)、検索条件を満たすアプリケーションの識別情報を取得する(23)。
次に、OS14aは、検索により発見された共有先アプリ64の候補の一覧を、LCD18に表示させる(24)。そして、ユーザがいずれかを選択すると(25)、OS14aは、選択されたアプリケーションの識別情報、および検索条件として用いたタイプとアクションとを含むインテントを返す(26)。一方、共有元アプリ60は、OS14aからインテントを受けると、OS14aのAPIを呼び出し、そのインテントに含まれる選択されたアプリケーションの識別情報、共有データのURI、タイプ、アクションを指定して、共有機能の実行を要求する(27)。OS14aは、共有元アプリ60から指定されたアプリケーションである共有先アプリ64を起動して、その共有先アプリ64の画面をフォアグラウンドとし、共有元アプリ60から通知された共有データのURIと、タイプと、アクションとを通知する(28)。
すなわち、共有元アプリ60が共有先アプリ64を認識せずに、共有データのURI等をOS14aへ通知する共有機能を暗黙的共有機能といい、共有元アプリ60が共有先アプリ64を指定して、共有データのURI等をOS14aへ通知する共有機能を明示的共有機能という。なお、本アプリ14bは、OS14aの明示的共有機能を利用するものとして説明する。
図5は、本アプリ14bに従い、携帯端末10のCPU11が実行するスキャン処理を示すフローチャートである。この処理は、本アプリ14bの操作受け付け画面(図示せず)から、ユーザがスキャンの実行を指示した場合に開始される。なお、以下に説明する図5から図9のフローチャートに示す各ステップは、本アプリ14bがCPU11に実行させ、または、本アプリ14bがOS14aなどの機能を利用してCPU11に実行させるものとして説明する。ただし、各フローチャートが含むステップは、OS14aやその他アプリケーションがCPU11に実行させるステップに一部置き換えられても良い。また、CPU11の関与によらず、携帯端末10に設けられたハードウェアそのものが作動することによって実現されるステップに、一部置き換えられても良い。
まず、ステップS402(以下、ステップを省略)において、CPU11は、デバイス30に対して画像データを送信するよう、無線LAN送受信部15から指示させる(S402)。一方、デバイス30は、携帯端末10からの指示に応じて、1または複数の原稿をスキャンし、1または複数の画像データを含んだ1の画像データセットを生成し、携帯端末10へ送信する。携帯端末10は、デバイス30から受信した画像データセットをRAM13に一時記憶させる。本実施形態において、この画像データは、非圧縮、または可逆圧縮されたRAW画像データであるものとする。デバイス30においてスキャンが完了しない間(S404:NO)、CPU11は、処理を待機する。一方、デバイス30においてスキャンが完了した場合(S404:YES)には、CPU11は、画像データセットの受信を完了する。
CPU11は、スキャン結果確認画面70をLCD18に表示させる(S406)。図3Aに、スキャン結果確認画面70の画面例を示す。スキャン結果確認画面70は、スキャン画像71、ページ表示領域72、共有ボタン74、保存ボタン76を含んでいる。スキャン画像71は、スキャン処理によって生成された画像データに対応する画像である。ページ表示領域72は、デバイス30に読み取らせた原稿の全ページ数と、現在表示中のスキャン画像71が全ページの原稿のうち何ページ目の原稿の画像であるかを示すページ番号とを表示する領域である。共有ボタン74は、共有機能の実行指示を入力するための領域である。ユーザが共有ボタン74にタッチすると、表示中のスキャン画像71に対応する画像データが、共有データとして決定される。保存ボタン76は、保存機能の実行指示を入力するための領域である。ユーザが保存ボタン76にタッチすると、表示中のスキャン画像71に対応する画像データの保存が実行される。具体的には、画像データを所定のフォーマットのデータに変換し、さらに、OS14aのAPIを呼び出して、メモリカード20に記憶させる。
次に、操作入力がない場合(S408:NO)、CPU11は、処理を待機する。一方、操作キー16またはタッチパネル17に対して操作が入力された場合であって(S408:YES)、且つ、共有機能以外の機能の実行指示が入力される場合(S410:NO)、CPU11は、操作入力に応じた各処理(例えば、画像データの保存処理)を実行し(S412)、スキャン処理を終了する。スキャン処理を終了すると、CPU11は本アプリ14bの操作受け付け画面(図示せず)を表示させる。
一方、共有機能の実行指示が入力された場合(S410:YES)、CPU11は、フォーマット選択画面77をLCD18に表示させ(S414)、JPEGフォーマットとPDFフォーマットとのいずれかをユーザに選択させる。デバイス30に読み取らせる原稿は、写真画像である場合、文書である場合など、様々である。よって、画像データの内容に適したフォーマットでデータを作成できるよう、いずれかのフォーマットをユーザに選択させるのである。
図3Bに、フォーマット選択画面77の画面例を示す。フォーマット選択領域78は、PDFフォーマットと、JPEGフォーマットとのいずれかをユーザに選択させるための選択肢を含む。ユーザは、いずれのフォーマットで画像データを他のアプリケーションに共有させたいかを選択し、選択したフォーマットの選択肢にタッチする選択操作を行う。フォーマット選択画面77においては、フォーマット選択領域78のみで操作を受け付け、共有ボタン74、保存ボタン76はグレーアウトし、ユーザ操作を受け付けない。
次に、フォーマットが選択されない間(S416:NO)、CPU11は、処理を待機する。一方、タッチパネル17がPDFフォーマットを指定する指示を受け付けた場合(S416:PDF)、CPU11はデバイス30から取得した画像データから、PDFデータを作成する(S430)。なお、複数ページの原稿をデバイス30にスキャンさせた場合、携帯端末10は、複数の画像データをデバイス30から取得する。その場合、CPU11は、複数の画像データから、複数ページのデータを含む1つのPDFデータを作成する。
一方、タッチパネル17がJPEGフォーマットを指定する指示を受け付けた場合であって(S416:JPEG)、且つ、デバイス30から1つの画像データを取得した場合、すなわち、デバイス30に1ページの原稿をスキャンさせた場合(S418:NO)、CPU11は、その画像データから1つのJPEGデータを作成する(S428)。
一方、デバイス30から複数の画像データを取得した場合、例えば、デバイス30に複数ページの原稿をスキャンさせた場合(S418:YES)、CPU11は、複数の画像データから、それぞれ1つのJPEGデータを作成することにより、複数のJPEGデータを作成する(S420)。
次に、CPU11は、処理中画面79をLCD18に表示させる(S422)。図3Cに、処理中画面79の画面例を示す。この処理中画面79の表示中、選択された一方のフォーマットの処理対象データが作成され、さらに、OS14aのAPIを呼び出すことにより、そのデータがメモリカード20に記憶される。なお、処理中画面79の表示中は、ユーザ操作を受け付けない。
そして、処理対象データ(S420、S428で作成されるJPEGデータ、またはS430で作成されるPDFデータ)の作成中(S424:NO)、CPU11は、S422から処理を繰り返す。本実施形態では、CPU11は、作成した処理対象データにファイル名を付与し、ファイルとしてメモリカード20に記憶させる。処理対象データの作成開始から、処理対象データを構成するファイルをメモリカード20に書き込み、そのファイルをクローズするまでは、処理対象データの作成中とする。付与されるファイル名は例えば、「photo.jpg」「photo1.jpg」「image1.jpg」「image2.jpg」「document.pdf」というファイル名が挙げられる。そして処理対象データの作成が完了すると(S424:YES)、CPU11は、共有処理(S426)を実行する。
図6を用いて、共有処理(S426)を説明する。この処理は、各種のデータを共有先アプリ64に共有させるための処理である。図5を参照して説明したように、この処理は、処理対象データの作成完了後に開始される。
S600においてCPU11は、メモリカード20に作成した処理対象データを、共有データとして指定する。S602においてCPU11は、S416で選択された、共有データのフォーマットを確認する。共有データのフォーマットがPDFフォーマットである場合(S602:PDF)には、S604へ進む。S604においてCPU11は、共有先アプリ64の候補中に、PDFフォーマットに対応しているアプリケーションが存在するか否かを判断する。具体的には、CPU11は、PDFフォーマットのデータを処理可能なアプリケーションを検索するよう、OS14aに要求し、OS14aからPDFフォーマットに対応しているアプリケーションの識別情報を含む情報が返ってきた場合には、PDFフォーマットに対応しているアプリケーションが存在すると判断し、OS14aからPDFフォーマットに対応しているアプリケーションの識別情報を含む情報が返ってこなかった場合には、PDFフォーマットに対応しているアプリケーションが存在しないと判断する。アプリケーションの識別情報を含む情報の例としては、アンドロイド(登録商標)OSにおけるインテントに含まれるアプリケーション名が挙げられる。存在しない場合(S604:NO)にはS605へ進む。
S605においてCPU11は、PDFフォーマットに対応しているアプリケーションが存在しないことを示す画面をLCD18に表示させ、S606へ進む。S606においてCPU11は、PDFフォーマットの共有データをJPEGフォーマットに変換し、PDFフォーマットの共有データに代えて、変換後のJPEGフォーマットのデータを新たな共有データとする。そしてS602へ戻る。なおS606では、PDFフォーマットの共有データの基となった画像データをJPEGフォーマットに変換し、変換後のJPEGフォーマットのデータを新たな共有データとしてもよい。
一方、S604において、PDFフォーマットに対応しているアプリケーションが存在する場合(S604:YES)には、S608へ進む。S608においてCPU11は、OS14aのAPIを呼び出し、PDFフォーマットに対応している共有先アプリ64の識別情報、共有データのURI、「PDF」のタイプ、「SEND_MULTI」のアクションを指定して、明示的共有機能の実行をOS14aに要求する。そしてフローを終了する。ここで「SEND_MULTI」のアクションは、複数対応アプリケーションに対して、処理の種類を指定する情報である。
一方、S416で選択された共有データのフォーマットがJPEGフォーマットであると、S602において判断された場合(S602:JPEG)には、S610へ進む。S610においてCPU11は、共有データとして指定されたJPEGデータが複数存在するか否かを判断する。JPEGデータが1つである場合(S610:NO)には、S611へ進む。
S611においてCPU11は、JPEGフォーマットに対応している共有先アプリ64の識別情報を含むインテントをOS14aから受信する。この場合の共有先アプリ64は、単数処理アプリケーションである。具体的には、CPU11は、JPEGフォーマットのデータを処理可能なアプリケーションを検索するよう、OS14aに要求し、OS14aからJPEGフォーマットに対応しているアプリケーションの識別情報を含むインテントを受信する。なお、本実施形態では、携帯端末10には工場出荷状態でJPEGフォーマットに対応しているアプリケーションが少なくとも1つはインストールされているケースを想定している。CPU11は、OS14aのAPIを呼び出し、JPEGフォーマットに対応している共有先アプリ64の識別情報、1つのJPEGデータである共有データのURI、「JPEG」のタイプ、「VIEW」のアクションを指定して、明示的共有機能の実行をOS14aに要求する。そしてフローを終了する。
なお、共有機能の実行を要求されたOS14aは、共有先アプリ64の画面をフォアグラウンド(前面とも呼ぶ)に表示するとともに、共有元アプリ60である本アプリ14bの画面を、共有先アプリ64の画面のバックグラウンド(背面とも呼ぶ)に表示する。そして本アプリ14bは、待機状態になる。そして、共有先アプリ64の処理が終了すると、OS14aは、本アプリ14aの画面をフォアグラウンド(前面とも呼ぶ)に表示する。そして本アプリ14bは、動作状態になる。すなわち、本アプリ14aは、動作状態になってから、フローを終了する。ここで、「VIEW」のアクションは、データを表示する処理を指定する情報である。なお、本実施形態では、携帯端末10にインストールされているアプリケーションのうち、少なくとも携帯端末10に工場出荷状態でインストールされているJPEGフォーマットに対応しているアプリケーションは、「VIEW」というアクションに対応していることを想定している。また、現状では、JPEGフォーマットに対応しているアプリケーションが「VIEW」に対応していることが多い。
一方、S610において、JPEGデータが複数存在する場合(S610:YES)には、S612へ進む。S612においてCPU11は、複数のデータを処理可能なアプリケーションである、複数対応アプリケーションが存在するか否かを判断する。具体的には、CPU11は、JPEGフォーマットのデータを処理可能であって、「SEND_MULTI」のアクションに対応しているアプリケーションを検索するようOS14aに対して要求する。なお、「SEND_MULTI」は、複数対応アプリケーションのみが宣言しているアクションである。OS14aから複数対応アプリケーションの識別情報を含む情報が返ってきた場合には、複数対応アプリケーションが存在すると判断し、OS14aから複数対応アプリケーションに対応しているアプリケーションの識別情報を含む情報が返ってこなかった場合には、複数対応アプリケーションが存在しないと判断する。複数対応アプリケーションが発見されなかった場合(S612:NO)にはS620へ進み、発見された場合(S612:YES)にはS613へ進む。
S613においてCPU11は、アプリケーション選択方法の選択画面90を表示する。図3Dに、選択画面90の画面例を示す。選択領域91は、一括選択処理と、個別選択処理と、のいずれを実行するかの指示を受け付けるための領域である。一括選択処理は、複数の処理対象データの全てに対して、同一の共有先アプリ64を一括して選択する処理である。個別選択処理は、複数の処理対象データの各々に対して、共有先アプリ64を個別に選択する処理である。
S614においてCPU11は、入力された指示内容を判断する。一括選択処理の実行指示が入力された場合(S614:一括選択)には、S615へ進む。S615においてCPU11は、発見されたアプリケーションの名称82を、共有先アプリ一覧画面81に一覧表示させる。
図3Eに、共有先アプリ一覧画面81の画面例を示す。共有先アプリ一覧画面81には、共有機能によるデータ出力先として選択可能なアプリケーションが、一覧表示される。具体的には、JPEGフォーマットのデータを処理可能であって、「SEND_MULTI」のアクションに対応しているアプリケーションを検索し、共有先アプリ一覧画面81に一覧表示するようOS14aに対して要求する。一覧表示要求を受けたOS14aは、共有先アプリ64(図2)の候補を検索し、発見された、複数対応アプリケーションの名称82を列記した共有先アプリ一覧画面81を、LCD18に表示させる。これにより、共有先アプリ一覧画面81がLCD18に表示される。これにより、ユーザは、複数のJPEGデータを一括して共有処理可能な複数対応アプリケーションを、共有先アプリ一覧画面81から選択することが可能となる。
S616においてCPU11は、共有先アプリ64が選択されたか否かを判断する。具体的には、共有先アプリ一覧画面81において選択された共有先アプリ64の識別情報を含むインテントをOS14aから受信した場合には、複数対応アプリケーションである共有先アプリ64の選択が行われたと判断され(S616:YES)、S618へ進む。S618においてCPU11は、OS14aのAPIを呼び出し、共有先アプリ64の識別情報、複数のJPEGデータである共有データのURI、「JPEG」のタイプ、「SEND_MULTI」のアクションを指定して、明示的共有機能の実行をOS14aに要求する。そしてフローを終了する。
一方、OS14aからインテントを受信しなかった場合には、共有先アプリ64の選択が行われなかったと判断され(S616:NO)、S620(図7)へ進む。S620においてCPU11は、単数のデータのみ処理可能なアプリケーションである単数処理アプリケーションの名称82を、共有先アプリ一覧画面81に一覧表示させる。具体的には、JPEGフォーマットのデータを処理可能なアプリケーションを検索し、共有先アプリ一覧画面81に一覧表示するようOS14aに対して要求する。この要求によって「SEND_MULTI」に対応していないが、JPEGフォーマットのデータの処理は可能なアプリケーションも共有先アプリ一覧画面81に一覧表示されることになる。S622においてCPU11は、共有先アプリ64が選択されたか否かを判断する。具体的には、OS14aからインテントを受信しなかった場合には、共有先アプリ64の選択が行われなかったと判断され(S622:NO)、S602(図6)へ戻る。一方、共有先アプリ一覧画面81において選択された共有先アプリ64の識別情報を含むインテントをOS14aから受信した場合には、単数処理アプリケーションである共有先アプリ64が選択されたと判断され(S622:YES)、S624へ進む。S624においてCPU11は、選択された共有先アプリ64を識別する情報である共有先アプリ識別情報を、フラッシュメモリ14に記憶させる。共有先アプリ識別情報は、例えば、共有先アプリ64のアプリケーション種類を識別するためのID情報であってもよい。
S626においてCPU11は、データ選択画面110をLCD18に表示させる。データ選択画面110では、S600で共有データとして指定された全てのJPEGデータに関するサムネイル画像が一覧表示される。図4Aに、データ選択画面110の画面例を示す。図4Aのデータ選択画面110では、例として、共有データとして指定されたJPEGデータが5つである場合を説明している。データ選択画面110は、サムネイル画像111〜115、全選択ボタン117、ページ入力領域118、を含んでいる。サムネイル画像111〜115は、共有データの各々を識別する識別画像である。サムネイル画像111〜115は、それぞれ、1〜5ページ目のサムネイル画像に該当する。
全選択ボタン117は、表示されている全てのサムネイル画像に対応するJPEGデータを、共有先アプリ64へ出力するデータとして選択する指示を入力するための領域である。ユーザが全選択ボタン117にタッチすると、サムネイル画像111〜115に対応するJPEGデータが選択される。ページ入力領域118は、複数のサムネイル画像のうちから選択されたサムネイル画像のページ番号を入力するための領域である。ユーザがサムネイル画像のページ番号をページ入力領域118に入力すると、入力したページ番号に対応するサムネイル画像のJPEGデータが選択される。例えば、ページ入力領域118に「1、3−5」というページ番号が入力された場合には、1ページ目のサムネイル画像111に対応するJPEGデータ、および、3〜5ページ目のサムネイル画像113〜115に対応するJPEGデータが選択される。これにより、ユーザは、共有先アプリ64へ出力するJPEGデータを、複数のJPEGデータの中から選択することが可能となる。
S628において、JPEGデータが選択されない間(S628:NO)は、CPU11は処理を待機する。一方、タッチパネル17がJPEGデータを選択する指示を受け付けた場合(S628:YES)、S629へ進む。S629においてCPU11は、選択された全てのJPEGデータを識別する情報を、フラッシュメモリ14に記憶させる。例えば、選択された全てのJPEGデータの各ファイル名を、記憶させてもよい。
S630においてCPU11は、選択された全てのJPEGデータのファイル名の各々に、連続番号を付加する。例えば、「photo1.jpg」「document1.jpg」というファイル名を有する2つのJPEGデータが選択された場合には、「photo1−1.jpg」「document1−2.jpg」のように、ファイル名に連続番号を追加してもよい。
S631においてCPU11は、画像編集画面をLCD18に表示させる。このとき、連続番号の最初の番号がファイル名に付加されているJPEGデータのサムネイル画面を、処理対象サムネイル画像201として表示させる。
画像編集画面は、処理対象サムネイル画像、回転処理ボタン、モノクロ処理ボタン、セピア処理ボタン、を含んでいてもよい。処理対象サムネイル画像は、単数処理アプリケーションに処理させる1つのJPEGデータの内容を示す、縮小画像である。回転処理ボタンは、JPEGデータの向きを回転させる処理(例:縦向きと横向きとの間で向きを変換する処理)の実行指示を入力するための領域である。モノクロ処理ボタンは、JPEGデータをモノクロのJPEGデータに変換する処理の実行指示を入力するための領域である。セピア処理ボタンは、JPEGデータをセピア基調のJPEGデータに変換する処理の実行指示を入力するための領域である。セピア基調とは、黒がかった茶色の色調である。ユーザが回転処理ボタン〜セピア処理ボタンの何れかにタッチすると、表示中の処理対象サムネイル画像に対応するJPEGデータに対して、タッチされたボタンに対応する処理が行われる。
S632においてCPU11は、画像編集が選択されたか否かを判断する。ユーザによる操作入力が行われなかった場合(S632:NO)にはS634へ進む。一方、ユーザによる操作入力が、回転処理ボタン202〜セピア処理ボタン204の何れかのタッチである場合、すなわち、画像編集指示の入力を受け付けた場合(S632:YES)、S633へ進む。S633においてCPU11は、処理対象サムネイル画像201に対応するJPEGデータに対して、回転処理ボタン202〜セピア処理ボタン204の何れかのタッチによって指示された画像編集処理を実行する。
S634においてCPU11は、S628で複数のJPEGデータが選択されたか否かを判断する。1つのJPEGデータが選択されている場合(S634:NO)には、S636へ進む。S636においてCPU11は、OS14aのAPIを呼び出し、単数処理アプリケーションである共有先アプリ64の識別情報、1つのJPEGデータである共有データのURI、「JPEG」のタイプ、「VIEW」のアクションを指定して、明示的共有機能の実行をOS14aに要求する。そしてフローを終了する。
一方、S628で複数のJPEGデータが選択された場合(S634:YES)には、S638へ進む。S638においてCPU11は、OS14aのAPIを呼び出し、単数処理アプリケーションである共有先アプリ64の識別情報、選択された複数のJPEGデータのうちの1つのJPEGデータである共有データのURI、「JPEG」のタイプ、「VIEW」のアクションを指定して、明示的共有機能の実行をOS14aに要求する。また、共有機能の実行の要求は、共有結果取得モードで行われる。共有結果取得モードとは、共有先アプリ64で1つのJPEGデータの処理が完了したことに応じて、共有先アプリ64から共有元アプリ60へ、処理が完了したことを報知させ、共有元アプリ60で、その報知を受信可能になるモードである。なお、共有機能の実行を要求されたOS14aは、共有先アプリ64の画面をフォアグラウンドに表示するとともに、共有元アプリ60である本アプリ14bの画面を、共有先アプリ64の画面のバックグラウンドに表示する。そして本アプリ14bは、待機状態になる。
S640においてCPU11は、共有先アプリ64でデータの処理実行中であることを示す処理中フラグを、フラッシュメモリ14に記憶させる。また、CPU11は、選択された複数のJPEGデータそれぞれに対応して、未処理であることを示す未処理情報をフラッシュメモリ14に記憶させる。CPU11は、未処理情報によって、選択された複数のJPEGデータのうち、何れのJPEGデータが共有先アプリ64で未処理であるかを認識することができる。例えば、未処理情報によって、複数のJPEGデータのうちの何ページ目まで処理が完了しているかを認識することができる。未処理情報は、例えば、未処理のJPEGデータのページ番号を示す情報であってもよい。また例えば、JPEGデータの全ページ数と、処理済のページ番号を示す情報であってもよい。また例えば、未処理のJPEGデータのファイル名であってもよい。そしてS644(図8)へ進む。
S644においてCPU11は、共有元アプリ60である本アプリ14bがフォアグラウンドに復帰するか否かを判断する。当該判断は、共有元アプリ60をフォアグラウンドに復帰させる内容のイベントを、OS14aから受信したか否かによって行われてもよい。復帰しない場合(S644:NO)にはCPU11は処理を待機し、復帰する場合(S644:YES)にはS646へ進む。
S646においてCPU11は、共有先アプリ64から、共有結果取得モードに基づく報知情報を受信したか否かを判断する。報知情報は、例えば、共有先アプリ64のアプリケーション種類を識別するためのID情報であってもよい。また報知情報は、例えば、1つのJPEGデータの処理が完了したことを示す情報や、次のJPEGデータの送信要求であってもよい。報知情報を受信していない場合(S646:NO)にはCPU11は処理を待機し、報知情報を受信した場合(S646:YES)にはS648へ進む。
S648においてCPU11は、S638においてOS14aのAPIに指定した共有データが処理済みであると認識できるように、未処理情報を更新させる。具体的には、未処理のJPEGデータのページ番号を示す情報から、S638においてOS14aのAPIに指定した共有データのページ番号を削除する処理であってもよい。また例えば、処理済のページ番号を示す情報に、S638においてOS14aのAPIに指定した共有データのページ番号を追加する処理であってもよい。また例えば、未処理のJPEGデータのファイル名を示す情報から、S638においてOS14aのAPIに指定した共有データのファイル名を削除する処理であってもよい。
S650においてCPU11は、選択された複数のJPEGデータの全てについて、共有処理が完了したか否かを、未処理情報に基づいて判断する。具体的には、未処理のJPEGデータのページ番号を示す情報が記憶されていないならば、共有処理が完了したと判断してもよい。また例えば、処理済のページ番号を示す情報が、JPEGデータの全ページ数分記憶されているならば、共有処理が完了したと判断してもよい。また例えば、未処理のJPEGデータのファイル名を示す情報が記憶されていないならば、共有処理が完了したと判断してもよい。全てのJPEGデータについて共有処理が完了していない場合(S650:NO)にはS656へ進む。S656においてCPU11は、連続共有確認表示をLCD18に表示させる。連続共有確認表示は、複数のJPEGデータを1つずつ共有先アプリ64に共有させる処理を連続して複数回実行することを、ユーザに報知するための表示である。
S660においてCPU11は、画像編集画面をLCD18に表示させる。画像編集画面の内容は、前述のS631で説明済みであるため、説明を省略する。このとき、S638においてOS14aのAPIに指定した共有データにS630にて付加していた連続番号の次の番号が、ファイル名に付加されているJPEGデータのサムネイル画面を、処理対象サムネイル画像201として表示させる。なお、S662においてCPU11は、画像編集が選択されたか否かを判断する。S662における処理の内容は、前述したS632の処理の内容と同様であるため、説明を省略する。また、S664における処理の内容は、前述したS633の処理の内容と同様であるため、説明を省略する。
S668においてCPU11は、フラッシュメモリ14から、共有先アプリ識別情報を読み出す。これによりCPU11は、共有先アプリ64を認識することが可能となる。
S670においてCPU11は、共有処理の実行指示が入力されたか否かを判断する。共有処理の実行指示が入力されていない場合(S670:NO)にはS650へ戻り、共有処理の実行指示が入力された場合(S670:YES)にはS674へ進む。
S674においてCPU11は、単数処理アプリケーションの名称82を、共有先アプリ一覧画面81に一覧表示させる。なお、S674の処理内容は、前述したS620の処理内容と同様であるため、説明を省略する。
S678においてCPU11は、共有先アプリ64が選択されたか否かを判断する。なお、S678の処理内容は、前述したS622の処理内容と同様であるため、説明を省略する。否定判断される場合(S678:NO)にはS678へ戻り、肯定判断される場合(S678:YES)にはS638へ戻る。
一方、S650において、選択された複数のJPEGデータの全てについて共有処理が完了したと判断された場合(S650:YES)には、S652へ進む。S652においてCPU11は、選択された全てのJPEGデータを共有先アプリ64に共有させる処理が完了したことを示す情報を、LCD18に表示させる。このとき、最後に共有先アプリ64に共有させた処理対象サムネイル画像201をLCD18に表示させてもよい。S654においてCPU11は、処理中フラグと、共有先アプリ識別情報と、未処理情報と、をフラッシュメモリ14から消去する。そしてフローを終了する。
また、図6のS614において、個別選択処理の実行指示が入力された場合(S614:個別選択)には、図9のS700へ進む。S700においてCPU11は、画像データ群の自動選択処理を実行する。画像データ群の自動選択処理は、第1〜第N(Nは2以上の自然数)のN個の画像データ群を、S404で取得した画像データセットの中から選択する処理である。画像データ群は、画像データセットに含まれている複数の画像データのうちの少なくとも1つを含んでいる群である。画像データ群の選択は、画像データの特性に基づいて行われる。本実施形態では、例として、「画像サイズ」という画像データの特性に基づいて、画像データ群の選択が行われる場合を説明する。具体的には、所定画像サイズであるA4サイズ以上のサイズを有する画像データを「第1の画像データ群」として選択し、所定画像サイズよりも小さいサイズを有する画像データを「第2の画像データ群」として選択する場合を説明する。すなわち、2個の画像データ群が、画像データセットの中から選択される場合を説明する。
S705においてCPU11は、共有先アプリ64の自動選択処理を実行する。共有先アプリ64の自動選択処理は、第1〜第Nの画像データ群の各々に対応する共有先アプリ64を選択する処理である。共有先アプリ64の選択は、画像データの特性に基づいて行われる。本実施形態では、例として、「画像サイズ」という画像データの特性に基づいて、画像データ群の選択が行われる場合を説明する。具体的には、A4サイズ以上のサイズを有する「第1の画像データ群」に対して、文書情報を取り扱うためのアプリケーション(例:PDF対応アプリケーション)を共有先アプリ64として選択する。また、A4サイズよりも小さいサイズを有する「第2の画像データ群」に対して、画像情報を取り扱うためのアプリケーション(例:JPEG対応アプリケーション)を共有先アプリ64として選択する。
S710においてCPU11は、共有先アプリ一覧画面130をLCD18に表示させる。図4Bに、共有先アプリ一覧画面130の画面例を示す。共有先アプリ一覧画面130には、領域R1およびR2、BackボタンB31、が含まれている。
領域R1は、第1の画像データ群に関連する領域である。領域R1には、共有実行ボタンB11、サムネイル画像T11およびT12、フォーマット表示部F11およびF12、が含まれている。サムネイル画像T11およびT12は、第1の画像データ群に含まれている画像データを識別するための縮小画像である。フォーマット表示部F11およびF12の各々は、サムネイル画像T11およびT12の各々で表される画像データを共有させる際に用いられるフォーマットを表示する領域である。共有実行ボタンB11は、サムネイル画像T11およびT12で表される画像データを、第1の共有先アプリに共有させる処理の実行指示を受け付けるためのボタンである。第1の共有先アプリとは、第1の画像データ群に対して選択された共有先アプリ64である。共有実行ボタンB11には、第1の共有先アプリの名称が表示されるとしてもよい。
領域R2は、第2の画像データ群に関連する領域である。領域R2には、共有実行ボタンB21、サムネイル画像T21およびT22、フォーマット表示部F21およびF22、が含まれている。領域R2の表示内容は、前述した領域R1の表示内容と同様であるため、ここでは説明を省略する。
BackボタンB31は、共有先アプリ一覧画面130の表示を終了させ、共有先アプリ一覧画面130の1つ前の画面を表示させる指示の入力を受け付けるためのボタンである。
S713〜S740は、S700およびS705で自動選択された共有先アプリ64および共有時のフォーマットを、画像データごとに選択し直すためのステップである。S713においてCPU11は、何れかの画像データが選択されたか否かを判断する。当該判断は、共有先アプリ一覧画面130に表示されているサムネイル画像の何れか1つがタッチされたか否かによって行われても良い。肯定判断される場合(S713:YES)には、S730へ進む。S730においてCPU11は、共有先アプリ一覧画面をLCD18に表示させる。共有先アプリ一覧画面の内容については、S426および図3Eを用いて説明済みであるため、ここでは説明を省略する。S735においてCPU11は、アプリケーションの選択指示が入力されたか否かを判断する。否定判断される場合(S735:NO)にはS735へ戻り、肯定判断される場合(S735:YES)にはS740へ進む。S740においてCPU11は、フォーマット選択画面をLCD18に表示させる。フォーマット選択画面の内容については、S414および図3Bを用いて説明済みであるため、ここでは説明を省略する。共有時のフォーマットが選択されると、S713へ戻る。そしてCPU11は、共有先アプリ64の変更および共有時のフォーマットの変更が反映された共有先アプリ一覧画面130を、LCD18に表示させる。
一方、S713において否定判断される場合(S713:NO)には、S742へ進む。S742においてCPU11は、何れかの画像データ群に対して、共有処理の実行指示が入力されたか否かを判断する。当該判断は、共有実行ボタンB11またはB21がタッチされたか否かによって行われても良い。否定判断される場合(S742:NO)には、S744へ進む。S744においてCPU11は、共有処理を終了する指示が入力されたか否かを判断する。当該判断は、BackボタンB31がタッチされたか否かによって行われても良い。否定判断される場合(S744:NO)にはS713へ戻り、肯定判断される場合(S744:YES)にはS760へ進む。
一方、S742において肯定判断される場合(S742:YES)には、S745へ進む。S745においてCPU11は、選択された画像データ群に含まれている画像データを、共有先アプリ64に共有させる、共有処理を実行する。具体的には、CPU11は、OS14aのAPIを呼び出し、共有先アプリ64の識別情報、1つまたは複数の画像データである共有データのURI、「JPEG」または「PDF」のタイプ、「SEND_MULTI」または「SEND」のアクション、を指定して、明示的共有機能の実行をOS14aに要求する。そして、共有機能の実行を要求されたOS14aは、共有先アプリ64の画面をフォアグラウンドに表示するとともに、共有元アプリ60である本アプリ14bの画面を、共有先アプリ64の画面のバックグラウンドに表示する。そして本アプリ14bは、待機状態になる。
S750においてCPU11は、共有元アプリ60である本アプリ14bがフォアグラウンドに復帰するか否かを判断する。具体的な処理内容は、S644で説明済みであるため、ここでは説明を省略する。否定判断される場合(S750:NO)には、S750へ戻る。一方、肯定判断される場合(S750:YES)には、共有が終了したと判断され、S753へ進む。S753においてCPU11は、今回の共有処理で共有が行われた画像データのサムネイル画像を、グレーアウト表示する。
S755においてCPU11は、画像データセットに含まれている全ての画像データについて、共有処理が実行されたか否かを判断する。否定判断される場合(S755:NO)にはS713へ戻り、肯定判断される場合(S755:YES)にはS760へ進む。S760においてCPU11は、共有先アプリ一覧画面130の表示を終了させ、スキャン結果確認画面70(図3を参照)をLCD18に表示させる。そしてフローを終了する。
<実施例1の効果>
複数の画像データの中に、互いに共有先アプリ64が異なる画像データが含まれている場合がある。例えば、文書ページと写真ページとを含んだ複数のページを有する原稿をスキャンする場合に、文書ページと写真ページとを異なる共有先アプリ64に共有させる場合が挙げられる。この場合、原稿を1ページずつスキャンし、スキャンが完了するたびに共有先アプリ64を選択する操作を繰り返す場合には、操作が煩雑になるため、ユーザの利便性が低くなってしまう。
本明細書に記載されているデバイス制御アプリケーション14bによれば、1のスキャン指示によって生成される画像データセットに含まれている複数の画像データの中から、第1〜第NのN個の画像データ群の各々を選択することができる(S700)。また、N個の画像データ群の各々について、互いに異なる共有先アプリ64を選択することができる(S705)。そして、選択した共有先アプリ64に、第1〜第Nの画像データ群の各々を共有処理させることができる。これにより、複数の画像データを、1つの画像データセットとして取り扱う場合においても、画像データセットに含まれる複数の画像データの各々に対して、異なる共有先アプリ64を選択することが可能となる。よって例えば、文書ページと写真ページとを含んだ複数のページを有する原稿をデバイス30のADFにセットして、1のスキャン実行指示を入力し、1の画像データセットを生成する場合においても、当該1の画像データセットに含まれる文書ページと写真ページとを、異なる共有先アプリ64に共有させることが可能となる。これにより、原稿を1枚ずつセットしてスキャン実行指示を1つずつ入力し、原稿データが生成されるたびに共有先アプリ64を選択する、という操作を繰り返す必要がない。ユーザ操作を簡略化することができるため、ユーザの利便性を高めることができる。
本明細書に記載されているデバイス制御アプリケーション14bによれば、画像データの特性に基づいて、第1〜第Nの画像データ群および共有先アプリ64を、自動で選択することが可能となる(S700、S705)。画像データの特性の一例としては、画像サイズ(例:A4サイズ、L版サイズ)が挙げられる。これにより、画像データ群や共有先アプリ64を選択するためのユーザの操作負担を低減することが可能となるため、利便性を高めることができる。
実施例2は、個別選択処理の実行指示が入力された場合の処理(図9参照)の変形例である。実施例2は、1の共有実行指示の入力を受け付けることで、複数の共有先アプリ64での共有処理を一括して実行する形態である。図10のフローにおいて、図9のフローと同一の符号が付されているステップの内容は説明済みであるため、ここでは説明を省略する。
S710aにおいてCPU11は、共有先アプリ一覧画面130aをLCD18に表示させる。図4Cに、共有先アプリ一覧画面130aの画面例を示す。共有先アプリ一覧画面130aは、図4Bに示す共有先アプリ一覧画面130に対して、一括共有実行ボタンB32がさらに追加された画面である。
S713においてCPU11は、何れかの画像データが、選択画像データとして選択されたか否かを判断する。肯定判断される場合(S713:YES)には、CPU11は、不図示の共有先アプリ64の追加ボタン、および、不図示の共有先アプリ64の再選択ボタンを、LCD18に表示させる。追加ボタンは、選択画像データについて現在選択されている共有先アプリ64に加えて、新たな共有先アプリ64を追加する指示の入力を受け付けるためのボタンである。再選択ボタンは、選択画像データについて現在選択されている共有先アプリ64を、選択し直す指示の入力を受け付けるためのボタンである。そしてS715aへ進む。
S715aにおいてCPU11は、共有先アプリ64の追加指示または再選択が入力されたか否かを判断する。当該判断は、前述の追加ボタンまたは再選択ボタンがタッチされたか否かによって行われても良い。追加指示が入力された場合(S715a:追加)にはS720aへ進み、追加処理実行フラグをフラッシュメモリ14に記憶させる。一方、再選択指示が入力された場合(S715a:再選択)にはS725aへ進み、再選択処理実行フラグをフラッシュメモリ14に記憶させる。S740において共有時のフォーマットが選択されると、S713へ戻る。そしてCPU11は、追加処理実行フラグがフラッシュメモリ14に記憶されている場合には、選択画像データに対して共有先アプリ64が追加された共有先アプリ一覧画面130を、LCD18に表示させる。またCPU11は、再選択処理実行フラグがフラッシュメモリ14に記憶されている場合には、選択画像データに対する共有先アプリ64の変更が反映された共有先アプリ一覧画面130を、LCD18に表示させる。
一方、S713において否定判断される場合(S713:NO)には、S742aへ進む。S742aにおいてCPU11は、一括共有処理の実行指示が入力されたか否かを判断する。当該判断は、一括共有実行ボタンB32がタッチされたか否かによって行われても良い。肯定判断される場合(S742a:YES)には、S745aへ進み、一括共有処理を実行する。
図11を用いて、S745aで行われる一括共有処理を説明する。S810においてCPU11は、共有処理がまだ実行されていない複数の画像データ群のうちから、1の選択画像データ群を選択する。S815においてCPU11は、選択画像データ群について選択されている共有先アプリ64である、選択共有先アプリを特定する。
S820においてCPU11は、第1〜第Nの画像データ群のうちに、共有処理を未実行である画像データ群であって、選択共有先アプリと同一種類の共有先アプリ64である共通共有先アプリが対応付けられている画像データ群(以下、共通画像データ群と記載する)が存在するか否かを判断する。否定判断される場合(S820:NO)にはS830へ進み、肯定判断される場合(S820:YES)にはS822へ進む。
S822においてCPU11は、共通画像データ群の共有時のフォーマットが、選択画像データ群の共有時のフォーマットと同一であるか否かを判断する。肯定判断される場合(S822:YES)にはS825へ進み、否定判断される場合(S822:NO)にはS824へ進む。
S824においてCPU11は、共通画像データ群のアクションの内容が、共通画像データ群の情報内容を変更せずに共通画像データ群を出力するという、第1の内容であるか否かを判断する。例えば、アクションが「SEND」である場合には、第1の内容であると判断してもよい。また、アクションが「VIEW」や「EDIT」である場合には、第1の内容ではないと判断してもよい。否定判断される場合(S824:NO)にはS825をスキップしてS830へ進み、肯定判断される場合(S824:YES)にはS825へ進む。S825においてCPU11は、共通画像データ群を読み出す。これにより、選択画像データ群に加えて、共通画像データ群も、共有処理の対象とすることができる。
S830においてCPU11は、選択共有先アプリを起動する。S835においてCPU11は、共有処理を実行する。これにより、選択共有先アプリの1回の起動に対して、選択画像データ群および共通画像データ群の全てを対象として、共有処理を実行することができる。S840においてCPU11は、選択共有先アプリを終了する。
S845においてCPU11は、全ての画像データ群について共有処理を実行したか否かを判断する。否定判断される場合(S845:NO)にはS810へ戻り、肯定判断される場合(S845:YES)には共有実行処理を終了する。
<動作具体例>
図11で行われる一括共有処理の動作具体例を説明する。例として、図12の表に示すように、第1〜第4の画像データ群が存在する場合を説明する。図12の表は、第1〜第4の画像データ群の各々について、選択共有先アプリ、共有時のフォーマット、アクション、の組合せ例を説明する表である。
CPU11は、第1の画像データ群を選択する(S810)。CPU11は、第1の画像データ群の選択共有先アプリが「第1アプリケーション」であることを特定する(S815)(領域R11参照)。CPU11は、第3の画像データ群および第4の画像データ群にも、「第1アプリケーション」が対応付けられていると判断する(S820:YES)(矢印Y11参照)。
第4の画像データ群の共有時のフォーマット(すなわち「PDF」)が、第1の画像データ群の共有時のフォーマット(すなわち「PDF」)と同一であるため(S822:YES)、第4の画像データ群も共有処理の対象として追加される(S825)(矢印Y12参照)。一方、第3の画像データ群の共有時のフォーマット(すなわち「JPEG」)は、第1の画像データ群の共有時のフォーマット(すなわち「PDF」)とは異なる(S822:NO)(矢印Y13参照)。また、第3の画像データ群のアクションが「SEND」ではないため(S824:NO)(領域R12参照)、S825がスキップされ、第3の画像データ群は共有処理の対象として追加されない。CPU11は、第1アプリケーションを起動し(S830)、第1および第4の画像データ群を対象として、共有処理を実行する(S835)。そして、第1アプリケーションを終了する(S840)。
全ての画像データ群について共有処理を実行していないため(S845:NO)、次の画像データ群として、第2の画像データ群が選択される(S810)。CPU11は、第2の画像データ群の選択共有先アプリが「第2アプリケーション」であることを特定する(S815)。CPU11は、他の何れの画像データ群にも、「第2アプリケーション」が対応付けられていないと判断し(S820:NO)、第2アプリケーションを起動する(S830)。第2の画像データ群を対象として、共有処理を実行し(S835)、第2アプリケーションを終了する(S840)。
全ての画像データ群について共有処理を実行していないため(S845:NO)、次の画像データ群として、第3の画像データ群が選択される(S810)。CPU11は、第3の画像データ群の選択共有先アプリが「第1アプリケーション」であることを特定する(S815)。CPU11は、共有処理を未実行である他の何れの画像データ群にも、「第1アプリケーション」が対応付けられていないと判断し(S820:NO)、第1アプリケーションを起動する(S830)。第1の画像データ群を対象として、共有処理を実行し(S835)、第1アプリケーションを終了する(S840)。全ての画像データ群について共有処理の実行が完了したため(S845)、フローを終了する。
<実施例2の効果>
本明細書に記載されているデバイス制御アプリケーション14bによれば、1つの一括共有処理の実行指示を受け付けることにより(S742a:YES)、第1〜第Nの画像データ群の各々を対象として複数の共有処理を実行させることが可能となる(S745a)。これにより、複数の画像データの各々に対して、複数回の共有処理の実行指示を受け付ける場合に比して、共有処理の実行指示の受け付け頻度を減少させることができるため、ユーザの利便性を高めることができる。
本明細書に記載されているデバイス制御アプリケーション14bによれば、複数の共有先アプリを順次1つずつ起動させた上で(S830)、起動した1の共有先アプリに共有処理を実行させることができる(S835)。そして、第1〜第Nの画像情報群のうちに、共通共有先アプリが対応付けられている共通画像データ群が存在する場合には(S820:YES)、共通共有先アプリの1回の起動に対して、共通画像データ群の全てを対象として共有処理を実行することができる(S835)。これにより、共通共有先アプリを起動した際に、共通共有先アプリに対応付けられている共通画像データ群の全てに対して、まとめて共有処理を実行することができる。これにより、共通共有先アプリが複数回起動されてしまう事態を防止することができるため、共有処理の実行時間を短縮化することが可能となる。
本明細書に記載されているデバイス制御アプリケーション14bによれば、第1〜第Nの画像情報群のうちに、共通共有先アプリが対応付けられている共通画像データ群が存在する場合に(S820:YES)、共通画像データ群の各々に対応付けられているフォーマットが異なる場合には(S822:NO、S824:NO)、異なるフォーマットが対応付けられている共通画像データ群の各々ごとに共通共有先アプリを起動させることができる(S830)。これにより、共通共有先アプリを起動した際に、共通共有先アプリ64に対応付けられている共通画像データ群のうち、情報フォーマットが同一である共通画像データ群の全てに対して、まとめて共有処理を実行することができる。これにより、共有処理の実行時間を短縮化することが可能となるため、利便性を高めることができる。
本明細書に記載されているデバイス制御アプリケーション14bによれば、第1〜第Nの画像情報群のうちに、共通共有先アプリが対応付けられている共通画像データ群が存在する場合に(S820:YES)、共通画像データ群の各々に対応付けられているフォーマットが異なる場合において(S822:NO)、共有処理の内容が共通画像データ群の情報内容を変更せずに共通画像データ群を出力する第1の内容である場合には(S824:YES)、共通共有先アプリの1回の起動に対して、共通画像データ群の全てを対象として共有処理を実行することができる(S835)。これにより、共通共有先アプリ64を起動した際に、共通共有先アプリ64に対応付けられている共通画像データ群のうち、共通画像データ群の情報内容を変更せずに出力する内容の共有処理が実行される共通画像データ群の全てに対して、まとめて共有処理を実行することが可能となる。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
<変形例1>
画像データセットは、様々な画像データの集合であってもよい。例えば、サーバ装置52に記憶されている各種のデータを、無線LAN送受信部15を介してダウンロードする際に、当該ダウンロード処理によって取得された複数の画像データの集合を、「画像データセット」と定義してもよい。また、圧縮フォルダをダウンロードする場合には、圧縮フォルダに含まれている複数の画像データの集合を、「画像データセット」と定義してもよい。これにより、サーバ装置52から取得した画像データセットに含まれている複数の画像データの各々を、異なる共有先アプリ64に共有処理させることが可能となる。
<変形例2>
S700の画像データ群の自動選択処理や、S705の共有先アプリ64の自動選択処理は、省略することが可能である。この場合、画像データ群および共有先アプリ64は、ユーザが手動選択処理によって選択すればよい。図13に、手動選択処理のフローを示す。図13のフローにおいて、図9のフローと同一の符号が付されているステップの内容は説明済みであるため、ここでは説明を省略する。
S710bにおいてCPU11は、データ選択画面をLCD18に表示させる。データ選択画面では、S600で共有データとして指定された全ての画像データに関するサムネイル画像が、一覧表示される。また、画像データの各々を選択するためのチェックボックスが、サムネイル画像の各々に対応して表示される。S713bにおいてCPU11は、何れかの画像データが選択されたか否かを判断する。当該判断は、データ選択画面に表示されているチェックボックスの少なくとも1つが、選択されたか否かによって行われても良い。
これにより、S713bにおいて選択された画像データを、S735で選択された共有先アプリ64に共有させることができる。また、共有処理を実行済みの画像データは、S753においてグレーアウト表示されるため、次回以降のループにおいて選択されてしまうことを防止することができる。
<その他の変形例>
S700において、2個の画像データ群を選択する場合を例示したが、この形態に限られない。3個以上の画像データ群を選択することも可能である。例えば、A4サイズ以上、A4サイズよりも小さくB5サイズ以上、B5サイズよりも小さくL判サイズ以上、L判サイズ以下、の4つの画像データ群を選択することも可能である。
S700において、画像データ群を選択する際に用いる画像データの特性は、「画像サイズ」に限られず、各種の特性を用いることができる。例えば、デバイス30が画像データを生成する際に、OCR(Optical Character Recognitionの略)等の技術により、画像データの特性として、画像種類(例:文書画像、写真画像など)を取得するとしてもよい。そしてS700において、文書画像の特性を有する画像データを「第1の画像データ群」として選択し、写真画像の特性を有する画像データを「第2の画像データ群」として選択してもよい。
自動選択された共有先アプリ64および共有時のフォーマットを選択し直す処理は、省略することが可能である。この場合、図9のフローにおいて、S713〜S740を省略すればよい。S710の次に、S742へ進むとすれば良い。
スキャン結果確認画面70を表示させる処理は、省略することが可能である。この場合、図9のフローにおいて、S760を省略すればよい。
以上より一般的に言うと、情報処理プログラムは、「画像情報セット取得手段」と、「画像情報群選択手段」と、「出力先アプリケーション選択手段」と、「処理制御手段」と、してプロセッサを少なくとも機能させればよい。
上記実施形態では、マルチページに非対応のフォーマットの一例がJPEGフォーマットであり、マルチページに対応したフォーマットの一例がPDFフォーマットであったが、これに限られるものではない。例えば、PNG、GIF、BMPなど、各種のフォーマットが、マルチページに非対応のフォーマットの一例となり得る。また、DOC、XLSなど、各種のフォーマットが、マルチページに対応したフォーマットの一例となり得る。
例えば、上記実施形態では、通話機能を有する携帯端末10が情報処理装置の一例であったが、パーソナルコンピュータ、デジタルカメラなどの通話機能を持たない各種の装置であっても情報処理装置の一例となり得る。また、タッチパネル17を有しておらず、ハードキーから操作を入力する装置についても、本発明を適用可能である。
また、上記実施形態においては、携帯端末10に着脱可能なメモリカード20にJPEGデータおよびPDFデータが記憶されるものとして説明した。これらのデータは、例えば、携帯端末10に内蔵されたフラッシュメモリ14に記憶されても良い。
また、上記実施形態において、スキャナデータを画像データの一例として説明したが、画像データはこれに限られるものではなく、例えば、携帯端末10に内蔵されたデジタルカメラで撮影された画像データであっても良い。デジタルカメラでは、連続撮影機能によって、1の撮影操作で複数の画像データが生成されるとしてもよい。また、LCD18に表示させるスキャン画像71のサイズに合わせて、スキャンデータを縮小または拡大して生成したデータが、画像データの一例であっても良い。
また、上記実施形態では、「作成」とは、デバイス30から取得した画像データを、選択されたフォーマットのファイルに変換することであった。また、この場合、共有データのURIは、ファイルパスで構成されるものとして説明した。しかしながら、「作成」とは、デバイス30から取得した画像データを、処理対象フォーマットのコンテンツに変換することであっても良い。その場合、共有データのURIは、例えば、「Contents:///devicecontrol1/attach/1」のようにアプリケーション中のインデックスやIDでデータを特定する形式である、コンテンツ形式で構成される。
また、上記実施形態においては、OS14aはアンドロイドOSであるものとして説明したが、他のOSが搭載された情報処理装置であっても本発明を適用可能である。
また、上記実施形態において、共有機能はOS14aによって実現されるものとして説明したが、これに代えて、例えばハードウェアやミドルウェアによって共有機能が実現される場合にも本発明を適用可能である。
また、上記実施形態において、携帯端末10とデバイス30との間は、Wi−Fi接続されるものとして説明したが、これに代えて、例えば、Bluetooth(登録商標)により接続される場合にも、本発明を適用可能である。
また、上記実施形態においては、共有先アプリ一覧画面81(図3E)に含まれるアプリケーションの名称82が、アプリケーションを識別する画像として用いられる場合を説明したが、アプリケーションを識別する画像として、アプリケーションのアイコン画像が用いられても良い。
また、上記実施形態では、本アプリ14bは、2種類のフォーマットのデータを作成させるものとして説明した。しかしながら、本発明は、3種類以上のフォーマットのデータを作成させるプログラムにも適用可能である。
「画像情報セット取得手段」、「画像情報群選択手段」、「出力先アプリケーション選択手段」、「処理制御手段」、の各々は、ハードウェア単体、または、本発明のプログラムあるいはオペレーティングシステムなど本発明以外のプログラムを実行することにより動作するハードウェアであっても良い。また、これら各部は、複数のプログラムによる処理を組み合わせて動作するハードウェアであっても良い。
共有元アプリ60は、データ出力元のアプリケーションの一例である。共有先アプリ64は、出力先アプリケーションの一例である。CPU11は、データ共有部の一例である。携帯端末10は、情報処理装置の一例である。デバイス制御アプリケーション14bは、情報処理プログラムの一例である。デバイス30、サーバ装置52は、外部機器の一例である。無線LAN送受信部15は、通信インターフェースの一例である。CPU11は、プロセッサの一例である。S404を実行するCPU11は、画像情報セット取得手段の一例である。S700を実行するCPU11は、画像情報群選択手段の一例である。S705を実行するCPU11は、出力先アプリケーション選択手段の一例である。S745を実行するCPU11は、処理制御手段の一例である。JEPG、PDFは、情報フォーマットの一例である。画像サイズおよび画像種類は、画像情報の特性の一例である。PDF対応アプリケーションは、文書情報を取り扱うためのアプリケーションの一例である。JPEG対応アプリケーションは、画像情報を取り扱うためのアプリケーションの一例である。