以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、MFP(Multi-Function Peripheralの略)10と、情報処理端末50とで構成されている。また、システム100は、MFP10に代えて、プリンタ単能機を含んでもよい。MFP10及び情報処理端末50は、通信ネットワーク101を通じて相互に通信可能に構成されている。通信ネットワーク101の具体例は特に限定されないが、例えば、インターネット、有線LAN、無線LAN、或いはこれらの組み合わせであってもよい。または、MFP10及び情報処理端末50は、USBケーブル等によって接続されていてもよい。
MFP10は、図1に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録された画像を読み取って画像データを生成するスキャン動作を実行する。但し、スキャナ12は、省略可能である。
ディスプレイ23は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示画面を備える。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたオブジェクトの位置に対するタップ操作は、当該オブジェクトを指定する指定操作の一例である。
通信I/F25は、通信ネットワーク101を通じて外部装置と通信可能なインタフェースである。すなわち、MFP10は、通信I/F25を通じて外部装置に各種情報を送信し、通信I/F25を通じて外部装置から各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(登録商標)を採用することができる。また、MFP10及び情報処理端末50がUSBケーブルで接続される場合、通信I/F25は、USBケーブルを着脱可能なUSBインタフェースであってもよい。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種情報、通信I/F25を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。CPU31及びメモリ32は、コントローラの一例を構成する。
メモリ32は、OS34と、装置プログラム35とを記憶している。装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32は、装置プログラム35の実行に必要なデータ或いは情報等を記憶する。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する情報処理端末50のメモリ62についても同様である。
情報処理端末50は、図1に示されるように、ディスプレイ53と、入力I/F54と、通信I/F55と、CPU61と、メモリ62と、通信バス63とを主に備える。情報処理端末50に含まれるディスプレイ53、入力I/F54、通信I/F55、CPU61、メモリ62、及び通信バス63は、MFP10に含まれるディスプレイ23、入力I/F24、通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。CPU61及びメモリ62は、コントローラの一例である。情報処理端末50は、例えば、携帯電話、スマートフォン、タブレット端末、或いはPC等である。
情報処理端末の入力I/F54は、入力媒体をタッチした操作面上の位置を示す位置情報を出力する位置センサと、操作面に対する入力媒体の押圧力を示す圧力情報を出力する圧力センサとを備える。一例として、入力I/F54の操作面は、ディスプレイ53の表示面に重ねられていてもよい。すなわち、ディスプレイ53及び入力I/F54は、タッチパネルディスプレイを構成していてもよい。そして、この場合の位置情報は、入力媒体がタッチした表示面上の位置を示す。これは、操作面上のタッチ位置に対応する表示面上の位置の一例である。
他の例として、入力I/F54の操作面は、ディスプレイ53と異なるタッチパッド上に設けられていてもよい。この場合の入力I/F54は、位置センサ及び圧力センサを有するタッチパッドとなる。さらに他の例として、入力I/F54の操作面は、机や床などの任意の面であってもよい。この場合の入力I/F54は、位置センサ及び圧力センサを有する入力媒体であるタッチペンとなる。また、この場合のOS64は、操作面上を移動する入力媒体に追従して表示面上を移動するポインタ画像(例えば、矢印を表す画像)を、ディスプレイ53に表示させる。そして、この場合の位置情報は、ポインタ画像が表示された表示面上の位置を示す。これは、操作面上のタッチ位置に対応する表示面上の位置の他の例である。
以下、第1圧力未満の押圧力で操作面に当接させた入力媒体を所定の時間が経過する前に離間させるユーザ操作を、「タップ操作」と表記する。また、第1圧力以上で且つ第2圧力未満の押圧力で操作面に当接させた入力媒体を所定の時間が経過する前に離間させるユーザ操作を、「ピーク操作」と表記する。さらに、第2圧力以上の押圧力で操作面に当接させた入力媒体を所定の時間が経過する前に離間させるユーザ操作を、「ポップ操作」と表記する。すなわち、第1圧力<第2圧力である。
また、操作面に当接させた状態の入力媒体を移動させるユーザ操作を、「スワイプ操作」と表記する。スワイプ操作は、入力媒体の押圧力を変化させながら、操作面上を任意の向きに移動させることが可能なユーザ操作である。より詳細には、スワイプ操作を行うユーザは、任意の形状(例えば、直線、円弧、或いはこれらの組み合わせ等)の軌跡を描くように、操作面上で入力媒体を移動させることができる。また、スワイプ操作を行うユーザは、操作面に対する入力媒体の押圧力を増加させたり、減少させたりできる。
さらに、操作面に当接させた状態の入力媒体を、押圧力を連続的に減少させながら直線的に移動させるユーザ操作を、「スイープ操作」と表記する。すなわち、スイープ操作は、位置情報で示される操作面上の位置が連続的に変化する点において、スワイプ操作と共通する。一方、スイープ操作は、入力媒体の移動の向きが直線的である点、及び押圧力が単調減少する点において、スワイプ操作と相違する。
また図示は省略するが、メモリ62は、複数のテンプレート画像データを記憶することができる。テンプレート画像データは、ハガキの通信面に記録されるテンプレート画像を示すデータである。本実施形態では、年賀状の通信面に記録されるテンプレート画像の例を説明するが、テンプレート画像の用途はこれに限定されず、例えば、暑中見舞い、クリスマスカード等にも応用することができる。なお、テンプレート画像データは、メモリ62に代えて、インターネット上の不図示のサーバに記憶されていてもよい。
[システム100の動作]
図3〜図6を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31、61の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31、61の処理を表している。CPU31、61による処理は、OS34、64を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
まず、情報処理端末50の端末プログラム65は、ユーザの指示に従ってOS64によって起動されたことに応じて、図7(A)に示されるテンプレート選択画面をディスプレイ53に表示させる(S11)。テンプレート選択画面は、複数のテンプレートアイコン111、112、113、114を含む。テンプレートアイコン111〜114は、メモリ62に記憶された複数のテンプレート画像データの1つに対応する。そして、端末プログラム65は、テンプレート選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S12)。
次に、端末プログラム65は、例えばテンプレートアイコン113の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて(S12:Yes)、指定されたテンプレートアイコン113に対応付けられたテンプレート画像データを、メモリ62から読み出す。次に、端末プログラム65は、図7(B)に示されるテンプレート編集画面を、テンプレート選択画面に代えてディスプレイ53に表示させる(S13)。S13の処理は、第2表示処理の一例である。そして、端末プログラム65は、テンプレート編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S14〜S16)。
テンプレート編集画面は、テンプレート画像121と、[テキスト]アイコン122と、[プリント]アイコン123とを含む。テンプレート画像121は、メモリ62から読み出したテンプレート画像データで示される画像である。[テキスト]アイコン122は、テンプレート画像121に文字列を合成する指示に対応する。[プリント]アイコン123は、後述する処理によって編集されたテンプレート画像121をハガキの通信面に記録する指示に対応する。
端末プログラム65は、例えば、[テキスト]アイコン122の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて(S14:Yes)、テキスト合成処理を実行する(S17)。テキスト合成処理は、ユーザが入力した文字列を、ユーザが指定したレイアウトでテンプレート画像121上に合成する処理である。図4を参照して、テキスト合成処理の詳細を説明する。
まず、端末プログラム65は、図8及び図9に示されるテキスト入力画面を、テンプレート編集画面に代えてディスプレイ53に表示させる(S21)。テキスト入力画面は、テンプレート画像121と、[A]アイコン131と、[〜]アイコン132と、[属]アイコン133とを含む。そして、端末プログラム65は、テキスト入力画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S22、S23)。テキスト入力画面において、[A]アイコン131、[〜]アイコン132、及び[属]アイコン133のうちの1つが選択状態となり、その他が非選択状態となる。
端末プログラム65は、[A]アイコン131の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて、[A]アイコン131を選択状態とし、[〜]アイコン132及び[属]アイコン133を非選択状態とする。そして、端末プログラム65は、図8(A)に示されるように、テキストボックス134及びソフトウェアキーボード135をテキスト入力画面に表示させる。[A]アイコン131を選択状態とすることによって、テキスト入力画面を通じて文字列が入力可能となる。
また、端末プログラム65は、[〜]アイコン132の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて、[〜]アイコン132を選択状態とし、[A]アイコン131及び[属]アイコン133を非選択状態とする。そして、端末プログラム65は、図9に示されるように、[完了]アイコン136をテキスト入力画面に表示させる。[〜]アイコン132を選択状態とすることによって、ソフトウェアキーボード135を通じて入力された文字列のレイアウトが指定可能となる。
さらに、端末プログラム65は、[属]アイコン133の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて、[属]アイコン133を選択状態とし、[A]アイコン131及び[〜]アイコン132を非選択状態とする。そして、端末プログラム65は、文字列の属性(例えば、フォントタイプ、フォントサイズ、色など)の指定を受け付ける不図示のオブジェクトをテキスト入力画面に表示させる。そして、端末プログラム65は、ソフトウェアキーボード135を通じて入力された文字列の属性を、当該オブジェクトを通じて受け付けた属性に変更する。
端末プログラム65は、例えば、N(=4)個の文字を含む第1文字列“よろしく”の入力操作及び[確定]の位置に対するタップ操作を、図8(A)に示されるソフトウェアキーボード135を通じて受け付ける(S22:Yes)。この処理は、受付処理の一例である。また、後述する軌跡情報がメモリ62に記憶されていない状態で文字列の入力を受け付ける処理は、第1受付処理の一例である。次に、端末プログラム65は、入力された文字数N(=4)と要素数が一致する配列“文字[i]”をメモリ62内に確保する。そして、端末プログラム65は、入力された各文字“よ”、“ろ”、“し”、“く”の文字コードを、文字[i]に入力順に記憶させる(S24)。
また、端末プログラム65は、軌跡情報がメモリ62に記憶されていないことに応じて(S25:No)、テンプレート画像121上のテキストボックス134の表示位置(以下、「初期位置」と表記する。)に、入力された第1文字列“よろしく”示す文字画像を合成する(S26)。そして、端末プログラム65は、図8(B)に示されるように、第1文字列“よろしく”が初期位置に合成されたテンプレート画像121を含むテキスト入力画面を、ディスプレイ53に表示させる(S21)。
次に、端末プログラム65は、例えば、図8(B)の[〜]アイコン132の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて(S22:No&S23:レイアウト)、ソフトウェアキーボード135に代えて、[完了]アイコン136をテキスト入力画面に表示させる。また、端末プログラム65は、軌跡情報を記憶する配列“軌跡[i]”をメモリ62内に確保する。軌跡[i]は、位置センサ及び圧力センサから同一のタイミングで出力される位置情報及び圧力情報のセットを記憶する。すなわち、軌跡情報は、位置情報及び圧力情報の複数のセットを含む。軌跡[i]の要素数は、後述するS27で位置情報及び圧力情報のセットを記憶させるのに十分な数とする。
次に、端末プログラム65は、[〜]アイコン132が選択状態にされたテキスト入力画面のテンプレート画像121上において、入力I/F54を通じてスワイプ操作を受け付ける(S28:No)。そして、端末プログラム65は、例えば図2に示されるように、スワイプ操作中に所定の時間間隔で入力I/F54から出力される位置情報及び圧力情報のセットを、軌跡[i]に出力順に記憶させる(S27)。S27、S28の処理は、操作面上を移動する入力媒体の軌跡を、位置情報の変化に基づいて特定する特定処理の一例である。
また、端末プログラム65は、例えば図9(A)に示されるように、スワイプ操作によって操作面上を移動する入力媒体に追従して、軌跡を示す軌跡画像137を表示面上の対応する位置に表示させる。軌跡画像137は、図2に示される軌跡情報のうち、位置情報で示される表示面上の位置を結ぶ線である。また、軌跡画像137は、対応する圧力情報で示される押圧力が大きいほど太く、対応する圧力情報で示される押圧力が小さいほど細く描かれる線である。
次に、端末プログラム65は、スワイプ操作が終了したと判断したことに応じて(S28:Yes)、レイアウト処理を実行する(S29)。スワイプ操作の終了は、入力媒体が操作面から離間されたこと、より詳細には、位置情報及び圧力情報が入力I/F54から出力されなくなったことによって判断できる。レイアウト処理は、ソフトウェアキーボード135を通じて入力された第1文字列“よろしく”を、S27で記憶した軌跡情報で示される入力媒体の移動軌跡に沿って、テンプレート画像121に合成する処理である。図5を参照して、レイアウト処理の詳細を説明する。
なお、本実施形態では、繰り返し実行されるS27において、図2に示されるように、位置情報及び圧力情報のセットが軌跡[1]〜[200]に記憶されたものとする。また、本実施形態では、図9(A)に示される軌跡の最後に右斜め下方にスイープ操作がなされたものとする。
まず、端末プログラム65は、軌跡情報に含まれる位置情報及び圧力情報のセットのうち、ソフトウェアキーボード135を通じて入力された文字数Nに一致する数のセットを抽出する(S31〜S35)。換言すれば、端末プログラム65は、スワイプ操作の軌跡上の点を対象点として抽出する抽出処理(S31、S34)を、対象点をN個抽出するまで繰り返し実行する。本実施形態では、Ramer−Douglas−Peuckerアルゴリズムを用いて、スワイプ操作の軌跡上の対象点を抽出する。図11を参照して、スワイプ操作の軌跡から4つの対象点を抽出する方法を説明する。
端末プログラム65は、図11(A)に示されるように、軌跡の始点及び終点を対象点として抽出する(S31)。すなわち、端末プログラム65は、軌跡[1]の要素である位置情報(x1,y1)と、軌跡[200]の要素である位置情報(x200,y200)とで示される表示面上の点を、対象点として抽出する。そして、端末プログラム65は、対象点を示す配列“軌跡[j]”のインデックス“1”、“200”をメモリ62に一時記憶させる。そして、端末プログラム65は、抽出した特徴点の数を示す変数iに2をセットする(S32)。S31の処理は、1回目の抽出処理の一例である。
次に、端末プログラム65は、変数iが文字数Nに達するまで(S33:No)、S34、S35の処理を繰り返し実行する。より詳細には、端末プログラム65は、既に抽出した対象点を結ぶ仮想線から最も遠い軌跡上の点を、対象点として抽出する(S34)。そして、端末プログラム65は、変数iに1を加算する(S35)。S34の処理は、2回目以降の抽出処理の一例である。
まず、端末プログラム65は、図11(B)に示されるように、2つの対象点を結ぶ破線から最も遠い軌跡上の点として、軌跡[72]で示される対象点を抽出し、インデックス“72”をメモリ62に一時記憶させる。また、端末プログラム65は、図11(C)に示されるように、3つの対象点を結ぶ破線から最も遠い軌跡上の点として、軌跡[38]で示される対象点を抽出し、インデックス“38”をメモリ62に一時記憶させる。これにより、例えば、軌跡の始点、終点、曲点、及び閾値長さ以上の直線の中点のうちのN点が、対象点として抽出される。曲点とは、例えば、軌跡の向きが大きく変わる点(例えば、Uターンする点、鋭角に曲がる点)であって、一般的に「エッジ」或いは「コーナー」等と呼ばれる点を指す。また、数学上の変曲点、極大点、極小点等に相当する点は、曲点に含まれてもよい。
次に、端末プログラム65は、変数iが文字数Nに達したことに応じて(S33:Yes)、軌跡[1]、[200]、[72]、[38]で示される対象点を、軌跡の方向に沿って並び替える(S36)。より詳細には、端末プログラム65は、入力された文字数N(=4)と要素数が一致する配列“対象点[i]”をメモリ62内に確保する。そして、端末プログラム65は、軌跡[1]、[200]、[72]、[38]の要素である位置情報及び圧力情報のセットを、メモリ62に一時記憶させたインデックスの昇順[1]、[38]、[72]、[200]に、対象点[1]〜[4]に記憶させる。
次に、端末プログラム65は、変数iに初期値(=1)をセットする(S37)。そして、端末プログラム65は、文字[i]で示される文字に対するS38、S39の処理を、変数iをインクリメントしながら繰り返し実行する(S40:No→S41)。S38は、対象点[i]における入力媒体の押圧力及び動きに応じて、当該対象点[i]に配置する文字を変形させるテキスト変形処理である。S39は、S38で変形させた文字を、対象点[i]で示されるテンプレート画像121上の位置に合成する処理である。まず、図6を参照して、テキスト変形処理の詳細を説明する。
一例として、端末プログラム65は、対象点[1]、[3]の圧力情報P1、P72で示される押圧力が第2圧力以上だと判断したことに応じて(S51:Yes)、文字[1]、[3]で示される文字“よ”、“し”を第1サイズにリサイズする(S55)。他の例として、端末プログラム65は、対象点[2]の圧力情報P38で示される押圧力が第1圧力未満だと判断したことに応じて(S53:Yes)、文字[2]で示される文字“ろ”を第3サイズにリサイズする(S57)。なお、第1サイズ>第2サイズ>第3サイズである。すなわち、端末プログラム65は、対象点に対応する表示面上の位置に表示させる文字を、当該対象点に対応する押圧力が大きいほど大きくし、当該対象点に対する押圧力が小さいほど小さくする。
さらに他の例として、端末プログラム65は、軌跡の終点である対象点[4]に向けてスイープ操作がなされたと判断したことに応じて(S54:Yes)、スイープ操作の向きと、スイープ操作をする入力媒体の移動速度とを特定する(S58)。スイープ操作の向き及び移動速度は、例えば、スイープ操作に対応する軌跡[190]〜[200]の位置情報の変化に基づいて特定可能である。また、端末プログラム65は、スイープ操作に対応する軌跡[190]〜[200]の圧力情報の変化に基づいて、スイープ操作における押圧力の減少速度を特定してもよい。
そして、端末プログラム65は、特定したスイープ操作の向き及び移動速度に基づいて、文字[4]で示される文字“く”を射影変換して、文字画像を生成する(S59)。まず、図12(A)に示されるように、デフォルト形状の文字“く”を囲む正方形の4つの頂点141、142、143、144を考える。そして、端末プログラム65は、図12(B)に示されるように、デフォルト形状の文字“く”の中心からスイープ操作の向きに延びる矢印に最も近い頂点144を、当該矢印の向きに移動させる。頂点144の移動量は、スイープ操作の移動速度が速いほど大きくなり、スイープ操作の移動速度が遅いほど小さくなる。なお、スイープ操作における押圧力の減少速度に応じて、頂点144の移動量が制御されてもよい。
次に、端末プログラム65は、図11(B)に示されるように、移動後の4つの頂点141、142、143、144で構成される矩形上に、文字[4]で示される文字“く”を射影して、文字画像“く”を生成する。射影変換は、周知の射影変換行列を用いて実現される。これにより、デフォルト形状の文字“く”は、スイープ操作の移動速度或いは押圧力の減少速度に応じた距離だけ、スイープ操作の移動向きに引き延ばされる。
次に図5に戻って、端末プログラム65は、対象点[1]の位置情報(x1、y1)で示されるテンプレート画像121上の位置に、文字[1]で示される第1サイズの文字“よ”を合成する(S39)。また、端末プログラム65は、対象点[2]の位置情報(x38、y38)で示されるテンプレート画像121上の位置に、文字[2]で示される第3サイズの文字“ろ”を合成する(S39)。また、端末プログラム65は、対象点[3]の位置情報(x72、y72)で示されるテンプレート画像121上の位置に、文字[3]で示される第1サイズの文字“し”を合成する(S39)。さらに、端末プログラム65は、対象点[4]の位置情報(x200、y200)で示されるテンプレート画像121上の位置に、文字[4]で示される射影変換された文字画像“く”を合成する(S39)。
次に図4に戻って、端末プログラム65は、図9(B)に示されるように、第1文字列“よろしく”がスワイプ操作の軌跡に沿って合成されたテンプレート画像121を含むテキスト入力画面を、ディスプレイ53に表示させる(S21)。この処理は、第1表示処理の一例である。また、端末プログラム65は、図9(B)に示される[A]アイコン131の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて、ソフトウェアキーボード135を表示させる。
次に、端末プログラム65は、例えば、既に入力された第1文字列“よろしく”を第2文字列“おめでとう”に変更するユーザ操作を、ソフトウェアキーボード135を通じて受け付ける(S22:Yes)。変更前の第1文字列“よろしく”の文字数N(=4)と、変更後の第2文字列“おめでとう”の文字数M(=5)とは、同一であってもよいし、異なっていてもよい。但し、M、Nは、2以上の整数である。軌跡情報がメモリ62に記憶された状態で文字列の入力を受け付ける処理は、第2受付処理の一例である。
次に、端末プログラム65は、入力された文字数M(=5)と要素数が一致する配列“文字[i]”に、入力された各文字“お”、“め”、“で”、“と”、“う”の文字コードを入力順に記憶させる(S24)。さらに、端末プログラム65は、図2に示される軌跡情報がメモリ62に記憶されていることに応じて(S25:Yes)、入力された第2文字列“おめでとう”を移動軌跡に沿って配置するレイアウト処理を実行する(S29)。以下、前述の処理との共通点の詳細な説明は省略し、相違点を中心に説明する。
まず、軌跡[1]、[200]、[72]、[38]で示される点を対象点として抽出する処理は、前述の説明と共通する。さらに、端末プログラム65は、図11(D)に示されるように、4つの対象点を結ぶ破線から最も遠い軌跡上の点として、軌跡[125]で示される対象点を抽出し、インデックス“125”をメモリ62に一時記憶させる。5つの対象点を抽出する処理は、再抽出処理の一例である。次に、端末プログラム65は、変数iが文字数Mに達したことに応じて(S33:Yes)、軌跡[1]、[200]、[72]、[38]、[125]の位置情報及び圧力情報を、インデックスの昇順[1]、[38]、[72]、[125]、[200]に、対象点[1]〜[5]に記憶させる(S36)。
また、端末プログラム65は、対象点[4]の圧力情報P125で示される押圧力が第1圧力以上で且つ第2圧力未満だと判断したことに応じて(S52:Yes)、文字[4]で示される文字“と”を第2サイズにリサイズする(S56)。文字[1]、[2]、[3]、[5]で示される文字“お”、“め”、“で”、“う”の変換方法は、前述の例と同様である。そして、端末プログラム65は、対象点[1]〜[5]の位置情報で示されるテンプレート画像121上の位置に、文字[1]〜[5]で示される変形後の文字“お”、“め”、“で”、“と”、“う”を合成する(S39)。
次に図4に戻って、端末プログラム65は、図10(A)に示されるように、第2文字列“おめでとう”がスイープ操作の軌跡に沿って合成されたテンプレート画像121を含むテキスト入力画面を、ディスプレイ53に表示させる(S21)。この処理は、再表示処理の一例である。さらに、端末プログラム65は、図10(A)に示される[完了]アイコン136の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて(S22:No&S23:完了)、テキスト合成処理を終了する。
次に図3に戻って、端末プログラム65は、図10(B)に示されるように、第2文字列“おめでとう”がスイープ操作の軌跡に沿って合成されたテンプレート画像121を含むテンプレート編集画面を、テキスト入力画面に代えてディスプレイ53に表示させる(S13)。次に、端末プログラム65は、テンプレート画像121に合成された文字の位置に対するユーザ操作(例えば、タップ操作、ピーク操作、ポップ操作、スイープ操作)を、入力I/F54を通じて受け付ける(S15)。
次に、端末プログラム65は、テンプレート画像121の位置に対するユーザ操作を入力I/F54を通じて受け付けたことに応じて(S15:Yes)、テキスト変形処理を実行する(S18)。換言すれば、端末プログラム65は、テンプレート画像121の位置に入力媒体がタッチされ、且つ当該入力媒体が表示面から離間されたことに応じて、テキスト変形処理を実行する(S18)。以下、前述の処理との共通点の詳細な説明は省略し、相違点を中心に説明する。
まず、端末プログラム65は、入力I/F54から出力される位置情報に基づいて、当該位置情報で示される操作面上の位置に対応する表示面上の位置に表示された対象文字と、操作面上における入力媒体の動きとを特定する(S51〜S54)。より詳細には、端末プログラム65は、入力媒体が表示面に当接されてから離間されるまでに入力I/F54から出力される複数の位置情報に基づいて、対象文字及び入力媒体の動きを特定する。S51〜S54の処理は、特定処理の一例である。
次に、端末プログラム65は、対象文字の位置に対するポップ操作、ピーク操作、或いはタップ操作を特定したことに応じて、圧力情報で示される押圧力に応じて対象文字をリサイズする(S55〜S57)。また、端末プログラム65は、対象文字の位置を基点とするスイープ操作を特定したことに応じて、対象文字を射影変換する(S58、S59)。S55〜S59の処理は、変形処理の一例である。そして図示は省略するが、端末プログラム65は、変形された対象文字が合成されたテンプレート画像121を含むテンプレート編集画面を、ディスプレイ53に表示させる(S13)。
さらに、端末プログラム65は、図10(B)に示される[プリント]アイコン123の位置に対するタップ操作を入力I/F54を通じて受け付けたことに応じて(S16:Yes)、通信I/F55を通じてMFP10にプリント指示情報を送信する(S19)。プリント指示情報は、編集されたテンプレート画像121をハガキの通信面に記録するプリント動作を、MFP10に実行させるための情報である。プリント指示情報は、編集されたテンプレート画像121を示すテンプレート画像データを含む。S19の処理は、出力処理の一例である。なお、出力処理の具体例はこれに限定されず、テンプレート画像データをメモリ62の所定の領域に記憶させることでもよいし、インターネット上の不図示のサーバにアップロードすることでもよい。
一方図示は省略するが、MFP10の装置プログラム35は、通信I/F25を通じて情報処理端末50からプリント指示情報を受信する。そして、装置プログラム35は、受信したプリント指示情報に従ったプリント動作をプリンタ11に実行させる。すなわち、プリンタ11は、プリント指示情報に含まれるテンプレート画像データで示されるテンプレート画像121を、ハガキの通信面に印刷する。
[本実施形態の作用効果]
上記の実施形態によれば、操作面にタッチした入力媒体の位置、動き、及び押圧力に従って、タッチ位置に対応する表示面上の位置に表示された対象文字が変形される。その結果、柔軟且つ簡単に文字列をレイアウトすることができる。その結果、入力した文字列を直感的なユーザ操作によって、柔軟且つ簡単にレイアウトすることができる。一例として、操作面に入力媒体を押しつける力を加減することによって、対象文字の大きさを変更することができる。他の例として、操作面上で入力媒体を直線的に移動させつつ押圧力を連続的に減少させるスイープ操作によって、対象文字を所望の形状に歪ませることができる。
なお、操作面にタッチした入力媒体の位置、動き、速度、及び押圧力の一部又は全部は、入力I/F54から位置情報及び圧力情報を取得したOS64によって特定され、特定された位置、動き、速度、及び押圧力を示す情報がOS64から端末プログラム65に通知されてもよい。すなわち、OS64は、例えば、図2に示される位置情報及び圧力情報を入力I/F54から取得し、取得した情報を解析して入力媒体の位置、動き、速度、及び押圧力を解析し、解析した結果を端末プログラム65に通知してもよい。「解析した結果」とは、例えば、入力媒体による操作(例えば、ポップ操作、ピーク操作、タップ操作、スイープ操作)を識別する操作ID等であってもよい。
また、上記の実施形態によれば、ユーザが入力媒体を用いて操作面上に描いた軌跡に沿って、テンプレート画像121上に第1文字列“よろしく”が配置される。すなわち、ユーザが操作面上に描いた軌跡に対応するレイアウトの第1文字列“よろしく”がテンプレート画像121に合成される。その結果、直感的なユーザ操作によって、入力した文字列を柔軟且つ簡単にレイアウトすることができる。
また、上記の実施形態によれば、テンプレート画像121に合成する文字列を、第1文字列“よろしく”から第2文字列“おめでとう”に修正すると、修正後の第2文字列の文字数に合わせて対象点が再抽出され、再抽出された対象点に修正後の各文字が再合成される。これにより、文字列を修正する度に操作面上に軌跡を描く必要がなくなるので、さらに柔軟且つ簡単に文字列をレイアウトすることができる。
また、上記の実施形態によれば、ディスプレイ53上で軌跡画像137を確認しながら、操作面上に所望の軌跡を描くことができる。その結果、さらに柔軟且つ簡単に文字列をレイアウトすることができる。
また、上記の実施形態によれば、押圧力を増減させながら操作面上に軌跡を描くことによって、押圧力に応じて変更された文字が軌跡に沿って配置される。一例として、押圧力の大小に応じて各文字のフォントサイズを増減させることができる。他の例として、軌跡の最後にスイープ操作を行うことによって、最後の文字を歪ませることができる。その結果、さらに柔軟且つ簡単に文字列をレイアウトすることができる。なお、S58、S59の処理のトリガとなる操作は、スイープ操作に代えて、フリック操作等でも代替可能である。
なお、上記の実施形態のように、Ramer−Douglas−Peuckerアルゴリズムを用いて、軌跡上から対象点を抽出することによって、文字列を軌跡上に適切に配置することができる。但し、対象点の抽出方法は、これに限定されない。他の例として、端末プログラム65は、入力媒体の移動距離或いは移動時間で軌跡を(N−1)等分した境界のN点を、対象点として抽出してもよい。
なお、上記の実施形態では、スワイプ操作が終了してから対象点を抽出する処理を実行する例(S28:Yes→S29)を説明したが、対象点を抽出するタイミングはこれに限定されない。他の例として、端末プログラム65は、スワイプ操作中に軌跡の始点、終点、曲点、及び閾値長さ以上の直線の中点等の対象点を検出したことに応じて、検出した対象点に入力された文字を入力順に配置してもよい。すなわち、入力媒体が表示面上を移動するのに追従して、入力された文字が入力順に配置されていってもよい。
また、上記の実施形態では、図9(B)及び図10(A)に示されるように、軌跡上にレイアウトした各文字の上下方向を、ディスプレイ53の長手方向に統一した例を説明した。しかしながら、軌跡上における各文字のレイアウトは、これに限定されない。他の例として、端末プログラム65は、例えば図10(A)に示される各文字“お”、“め”、“で”、“と”、“う”を、当該文字の上下方向と対象点における軌跡の法線方向とが一致する向きに回転させて、テンプレート画像121に合成してもよい。すなわち、図10(A)の例によれば、文字“お”、“め”が時計回りに回転され、文字“で”、“と”、“う”が反時計回りに回転された状態でディスプレイ53に表示される。
また、上記の実施形態では、年賀状の通信面に記録するテンプレート画像121に合成する文字をレイアウト或いは変形させる例を説明したが、本発明の用途はこれに限定されない。他の例として、刺繍データに従って布地に糸を縫い込むミシン、ラベルに文字列を記録するラベルプリンタ、円盤形状の画像をCD−ROMの表面に記録するレーベルプリンタ、布地に画像を記録するガーメントプリンタ等において、入力された文字を操作面に対するユーザ操作に従ってレイアウト或いは変形させてもよい。
また、上記の実施形態のMFP10及び情報処理端末50において、メモリ32、62に記憶された各種プログラムがCPU31、61によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10及び情報処理端末50として実現できるだけでなく、MFP10及び情報処理端末50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワーク101を通じてMFP10及び情報処理端末50に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク101を通じて配信されてもよい。