(57)【要約】【課題】ユーザが入力した文字列を柔軟且つ簡単に編集可能な情報処理端末のプログラムを提供する。【解決手段】端末プログラムは、予め定められた禁止領域を含む背景画像を表示させる第１表示処理と、文字列を入力する入力操作を受け付ける第１受付処理（Ｓ３２：Ｙｅｓ→Ｓ３４）と、タッチ面上を移動する入力媒体の軌跡を示す軌跡情報を取得する取得処理（Ｓ３３：レイアウト→Ｓ３６＆Ｓ３７）と、軌跡情報が表示面上の禁止領域に重なる軌跡を示していると判断したことに応じて（Ｓ３８：Ｙｅｓ）、軌跡が禁止領域を避けるように軌跡情報を補正する補正処理（Ｓ４０）と、補正した軌跡情報で示される軌跡に沿った表示面上の複数の位置それぞれにおいて、入力された文字列に含まれる複数の文字それぞれを、文字列内における順番に従って背景画像に合成する第１合成処理（Ｓ４０）とを情報処理端末に実行させる。【選択図】図４
2019008388.tif 000002
【特許請求の範囲】
【請求項１】
表示面を有するディスプレイと、前記表示面に対応付けられたタッチ面を有するユーザインタフェースとを備える情報処理端末によって実行可能なプログラムであって、前記ユーザインタフェースは、前記タッチ面に入力媒体がタッチされた場合に、前記入力媒体がタッチされた前記タッチ面上の位置を示す位置情報を出力するインタフェースであり、
該プログラムは、
予め定められた禁止領域を含む背景画像を前記ディスプレイに表示させる第１表示処理と、
文字列を入力する入力操作を前記ユーザインタフェースを通じて受け付ける第１受付処理と、
前記タッチ面上を移動する前記入力媒体の軌跡を示す軌跡情報を取得する取得処理とを前記情報処理端末に実行させ、前記軌跡情報は、前記ユーザインタフェースから出力される前記位置情報に基づいて生成される情報であり、
該プログラムは、
前記取得処理で取得した前記軌跡情報が前記表示面上の前記禁止領域に重なる前記軌跡を示しているか否かを判断する第１判断処理と、
前記第１判断処理で前記禁止領域に重なる前記軌跡を示していると判断したことに応じて、前記軌跡が前記禁止領域を避けるように、前記取得処理で取得した前記軌跡情報を補正する補正処理と、
前記補正処理で補正した前記軌跡情報で示される前記軌跡に沿った前記表示面上の複数の位置それぞれにおいて、前記第１受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って前記背景画像に合成する第１合成処理とを前記情報処理端末に実行させるプログラム。
【請求項２】
該プログラムは、
前記第１判断処理で前記禁止領域に重なる前記軌跡を示していると判断したことに応じて、前記取得処理で取得した前記軌跡情報で示される前記軌跡の終点が前記禁止領域内に位置するか否かを判断する第２判断処理を前記情報処理端末に実行させ、
前記第２判断処理で前記禁止領域内だと判断した場合の前記補正処理において、
前記禁止領域の輪郭のうちの前記終点に最も近い位置に前記終点が移動し、
進入点及び移動後の前記終点の間の前記軌跡が前記輪郭に沿うように、前記軌跡情報を補正し、前記進入点は、前記禁止領域外から前記禁止領域内に進入する前記軌跡と前記輪郭との交点である請求項１に記載のプログラム。
【請求項３】
該プログラムは、前記第２判断処理で前記禁止領域内だと判断した場合の前記補正処理において、前記進入点及び移動後の前記終点が前記輪郭に沿って最短距離で結ばれるように、前記進入点及び移動後の前記終点の間の前記軌跡情報を補正する請求項２に記載のプログラム。
【請求項４】
該プログラムは、前記第１合成処理において、前記進入点及び移動後の前記終点の間に合成する前記文字を、当該文字が配置される位置の前記輪郭の形状に合わせてエンベロープ変形して、前記背景画像に合成する請求項２又は３に記載のプログラム。
【請求項５】
該プログラムは、前記第２判断処理で前記禁止領域外だと判断した場合の前記補正処理において、進入点及び前記終点の間の前記軌跡を示す前記軌跡情報を、当該軌跡の前記進入点が退出点に一致するように補正し、前記進入点は、前記禁止領域外から前記禁止領域内に進入する前記軌跡と前記輪郭との交点であり、前記退出点は、前記禁止領域内から前記禁止領域外に退出する前記軌跡と前記輪郭との交点である請求項２から４のいずれかに記載のプログラム。
【請求項６】
該プログラムは、前記第２判断処理で前記禁止領域外だと判断した場合の前記補正処理において、進入点及び前記終点の間の前記軌跡が削除され、且つ退出点から前記終点に向かう向きに直線的に延びる代替軌跡が追加されるように前記軌跡情報を補正し、前記進入点は、前記禁止領域外から前記禁止領域内に進入する前記軌跡と前記輪郭との交点であり、前記退出点は、前記禁止領域内から前記禁止領域外に退出する前記軌跡と前記輪郭との交点である請求項２から４のいずれかに記載のプログラム。
【請求項７】
該プログラムは、前記第２判断処理で前記禁止領域外だと判断した場合の前記補正処理において、進入点及び退出点の間の前記軌跡が削除されるように前記軌跡情報を補正し、前記進入点は、前記禁止領域外から前記禁止領域内に進入する前記軌跡と前記輪郭との交点であり、前記退出点は、前記禁止領域内から前記禁止領域外に退出する前記軌跡と前記輪郭との交点である請求項２から４のいずれかに記載のプログラム。
【請求項８】
該プログラムは、前記第１受付処理で入力を受け付けた前記文字列に含まれるＮ（Ｎは２以上の整数）個の文字のうち、前記軌跡の始点及び前記進入点の間に合成する文字数Ｎ１をＮ×Ｌ１／（Ｌ１＋Ｌ２）に決定し、前記軌跡の前記退出点及び前記終点の間に合成する文字数Ｎ２をＮ×Ｌ１／（Ｌ１＋Ｌ２）に決定する決定処理を前記情報処理端末に実行させ、前記Ｌ１は、前記始点から前記進入点までの前記軌跡に沿った長さであり、前記Ｌ２は、前記退出点から前記終点までの前記軌跡に沿った長さであり、
該プログラムは、前記第１合成処理において、
前記始点から前記進入点までの前記軌跡に対応する前記表示面上の位置に、前記文字列内における順番の先頭からＮ１個の前記文字を合成し、
前記退出点から前記終点までの前記軌跡に対応する前記表示面上の位置に、次のＮ２個の前記文字を合成する請求項５から７のいずれかに記載のプログラム。
【請求項９】
該プログラムは、
前記補正処理で補正した前記軌跡情報で示される前記軌跡を前記ディスプレイに表示させる第２表示処理と、
前記第２表示処理で表示させた前記軌跡を確認したことに対応する確認操作を、前記ユーザインタフェースを通じて受け付ける第２受付処理と、
前記第２受付処理で前記確認操作を受け付けたことに応じて、前記第１合成処理とを前記情報処理端末に実行させる請求項１から８のいずれかに記載のプログラム。
【請求項１０】
該プログラムは、
前記第１判断処理で前記禁止領域に重なる前記軌跡を示していると判断したことに応じて、前記禁止領域が前記表示面に交差する方向の勾配を有するか否かを判断する第３判断処理を前記情報処理端末に実行させ、
前記第３判断処理で前記勾配を有しないと判断したことに応じて、前記補正処理及び前記第１合成処理を前記情報処理端末に実行させ、
前記第３判断処理で前記勾配を有すると判断したことに応じて、前記取得処理で取得した前記軌跡情報で示される前記軌跡に沿った前記表示面上の複数の位置それぞれにおいて、前記第１受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って前記背景画像に合成する第２合成処理を前記情報処理端末に実行させ、
前記第２合成処理において、前記禁止領域に重なる位置に合成する前記文字を、前記勾配に沿って前記禁止領域に投影した形状に変形して、前記背景画像に合成する請求項１から９のいずれかに記載のプログラム。
【請求項１１】
該プログラムは、
前記情報処理端末が備えるメモリに記憶された複数の背景画像データのうちの１つを指定する指定操作を、前記ユーザインタフェースを通じて受け付ける第３受付処理を前記情報処理端末に実行させ、
前記第１表示処理において、前記第３受付処理で指定を受け付けた背景画像データで示される前記背景画像を前記ディスプレイに表示させ、
前記第１判断処理において、前記第３受付処理で指定を受け付けた前記背景画像データに対応付けて設定された前記禁止領域に前記軌跡が重なるか否かを判断する請求項１から１０のいずれかに記載のプログラム。
【請求項１２】
該プログラムは、
前記補正処理で補正した前記軌跡情報で示される前記軌跡上の対象点を抽出する抽出処理を、前記第１受付処理で入力された文字数Ｎに相当する数の前記対象点を抽出するまで前記情報処理端末に繰り返し実行させ、
１回目の前記抽出処理において、前記軌跡の始点及び終点を前記対象点として抽出し、
２回目以降の前記抽出処理において、既に抽出した前記対象点を結ぶ仮想線から最も遠い前記軌跡上の点を前記対象点として抽出し、
前記第１合成処理において、前記入力媒体の移動方向に沿って配列したＮ個の前記対象点に対応する前記表示面上の位置において、前記第１受付処理で入力されたＮ個の文字それぞれを、前記文字列内における順番に従って前記背景画像に合成する請求項１から１１のいずれかに記載のプログラム。
【請求項１３】
表示面を有するディスプレイと、前記表示面に対応付けられたタッチ面を有するユーザインタフェースとを備える情報処理端末によって実行可能なプログラムであって、前記ユーザインタフェースは、前記タッチ面に入力媒体がタッチされた場合に、前記入力媒体がタッチされた前記タッチ面上の位置を示す位置情報を出力するインタフェースであり、
該プログラムは、
輪郭線を含む背景画像を前記ディスプレイに表示させる表示処理と、
文字列を入力する入力操作を前記ユーザインタフェースを通じて受け付ける受付処理と、
前記背景画像の前記輪郭線に沿って、前記受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って合成する合成処理とを前記情報処理端末に実行させ、
前記合成処理において、前記受付処理で入力された前記複数の文字それぞれを、当該文字が配置される位置の前記輪郭線の形状に合わせてエンベロープ変形して、前記背景画像に合成するプログラム。
【請求項１４】
表示面を有するディスプレイと、
前記表示面に対応付けられたタッチ面を有するユーザインタフェースと、
コントローラとを備える情報処理端末であって、
前記ユーザインタフェースは、前記タッチ面に入力媒体がタッチされた場合に、前記入力媒体がタッチされた前記タッチ面上の位置を示す位置情報を出力するインタフェースであり、
前記コントローラは、
予め定められた禁止領域を含む背景画像を前記ディスプレイに表示させる第１表示処理と、
文字列を入力する入力操作を前記ユーザインタフェースを通じて受け付ける第１受付処理と、
前記タッチ面上を移動する前記入力媒体の軌跡を示す軌跡情報を取得する取得処理とを実行し、前記軌跡情報は、前記ユーザインタフェースから出力される前記位置情報に基づいて生成される情報であり、
前記コントローラは、
前記取得処理で取得した前記軌跡情報が前記表示面上の前記禁止領域に重なる前記軌跡を示しているか否かを判断する第１判断処理と、
前記第１判断処理で前記禁止領域に重なる前記軌跡を示していると判断したことに応じて、前記軌跡が前記禁止領域を避けるように、前記取得処理で取得した前記軌跡情報を補正する補正処理と、
前記補正処理で補正した前記軌跡情報で示される前記軌跡に沿った前記表示面上の複数の位置それぞれにおいて、前記第１受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って前記背景画像に合成する第１合成処理とを実行する情報処理端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが入力した文字列を所望のレイアウトに編集する情報処理端末のプログラムに関する。
【背景技術】
【０００２】
例えば特許文献１には、入力された文書データの文書種別を判定し、文書種別毎に予め設定された文書構成情報に従って文書データの体裁（例えば、文字のフォント、サイズ、太さ、又は配置）を整えることが可能な情報処理端末が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１１０４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の情報処理端末では、予め設定された文章構成情報の範囲でしか文書データが編集できない。すなわち、文書データの編集の自由度が低いという課題がある。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、ユーザが入力した文字列を柔軟且つ簡単に編集可能な情報処理端末のプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本明細書では様々な開示を行う。開示例の１つであるプログラムは、表示面を有するディスプレイと、前記表示面に対応付けられたタッチ面を有するユーザインタフェースとを備える情報処理端末によって実行可能である。前記ユーザインタフェースは、前記タッチ面に入力媒体がタッチされた場合に、前記入力媒体がタッチされた前記タッチ面上の位置を示す位置情報を出力するインタフェースである。該プログラムは、予め定められた禁止領域を含む背景画像を前記ディスプレイに表示させる第１表示処理と、文字列を入力する入力操作を前記ユーザインタフェースを通じて受け付ける第１受付処理と、前記タッチ面上を移動する前記入力媒体の軌跡を示す軌跡情報を取得する取得処理とを前記情報処理端末に実行させる。前記軌跡情報は、前記ユーザインタフェースから出力される前記位置情報に基づいて生成される情報である。該プログラムは、前記取得処理で取得した前記軌跡情報が前記表示面上の前記禁止領域に重なる前記軌跡を示しているか否かを判断する第１判断処理と、前記第１判断処理で前記禁止領域に重なる前記軌跡を示していると判断したことに応じて、前記軌跡が前記禁止領域を避けるように、前記取得処理で取得した前記軌跡情報を補正する補正処理と、前記補正処理で補正した前記軌跡情報で示される前記軌跡に沿った前記表示面上の複数の位置それぞれにおいて、前記第１受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って前記背景画像に合成する第１合成処理とを前記情報処理端末に実行させる。
【０００７】
上記構成によれば、ユーザが入力媒体を用いてタッチ面上に描いた軌跡に沿ってレイアウトされた文字列が背景画像に合成される。これにより、直感的な操作で柔軟且つ簡単に文字列をレイアウトすることができる。また、ユーザが描いた軌跡が予め定められた禁止領域に重なる場合に、当該禁止領域を避けるように軌跡情報が補正される。これにより、強調したい絵或いは文字が配置された背景画像上の領域を禁止領域に設定しておけば、当該絵或いは文字が入力された文字列で隠れてしまうことを抑制できる。
【０００８】
開示例の他の１つであるプログラムは、表示面を有するディスプレイと、前記表示面に対応付けられたタッチ面を有するユーザインタフェースとを備える情報処理端末によって実行可能である。前記ユーザインタフェースは、前記タッチ面に入力媒体がタッチされた場合に、前記入力媒体がタッチされた前記タッチ面上の位置を示す位置情報を出力するインタフェースである。該プログラムは、輪郭線を含む背景画像を前記ディスプレイに表示させる表示処理と、文字列を入力する入力操作を前記ユーザインタフェースを通じて受け付ける受付処理と、前記背景画像の前記輪郭線に沿って、前記受付処理で入力された前記文字列に含まれる複数の文字それぞれを、前記文字列内における順番に従って合成する合成処理とを前記情報処理端末に実行させ、前記合成処理において、前記受付処理で入力された前記複数の文字それぞれを、当該文字が配置される位置の前記輪郭線の形状に合わせてエンベロープ変形して、前記背景画像に合成する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係るシステム１００のブロック図である。
【図２】図２は、メモリ６２に記憶されるデータの例であって、（Ａ）はテンプレート画像データ及び禁止領域情報のセットを、（Ｂ）は軌跡情報を示す。
【図３】図３は、通信面編集処理のフローチャートである。
【図４】図４は、テキスト合成処理のフローチャートである。
【図５】図５は、レイアウト処理Ａのフローチャートである。
【図６】図６は、レイアウト処理Ｂのフローチャートである。
【図７】図７は、ディスプレイ５３の表示例であって、（Ａ）はテンプレート選択画面を、（Ｂ）はテンプレート編集画面を示す。
【図８】図８は、ディスプレイ５３の表示例であって、（Ａ）は写真選択画面を、（Ｂ）は透過領域１２２に写真が合成されたテンプレート編集画面を示す。
【図９】図９は、ディスプレイ５３の表示例であって、（Ａ）は［Ａ］アイコン１４１が選択状態にされたテキスト入力画面を、（Ｂ）は文字列“よろしく”が入力されたテキスト入力画面を示す。
【図１０】図１０は、ディスプレイ５３の表示例であって、（Ａ）は［〜］アイコン１４２が選択状態にされて軌跡が入力されたテキスト入力画面を、（Ｂ）は文字列“よろしく”が軌跡に沿って配置されたテキスト入力画面を示す。
【図１１】図１１は、Ｒａｍｅｒ−Ｄｏｕｇｌａｓ−Ｐｅｕｃｋｅｒアルゴリズムを用いて対象点を抽出する処理を説明するための図である。
【図１２】図１２は、軌跡と禁止領域１２２との関係を示す図であって、（Ａ）は終点１５３が禁止領域内に位置する状態を、（Ｂ）は終点１５３を輪郭上の位置１５４に移動させた状態を、（Ｃ）は終点１６３が禁止領域内に位置する状態を、（Ｄ）は終点１６３を輪郭上の位置１６４に移動させた状態を示す。
【図１３】図１３は、図１２（Ｂ）の対象点１５６に合成される文字“と”を示す図であって、（Ａ）はエンベロープ変形前の状態を、（Ｂ）はエンベロープ変形後の状態を示す。
【図１４】図１４は、軌跡と禁止領域１２２との関係を示す図であって、（Ａ）は禁止領域１２２を通過した軌跡の終点１８４が禁止領域１２２外に位置する状態を、（Ｂ）は軌跡１８２−１８４を退出点１８３の位置に移動させた状態を、（Ｃ）は軌跡１８２−１８４を削除して代替軌跡１８３”−１８４”を追加した状態を、（Ｄ）は軌跡１８２−１８３を削除した状態を示す。
【図１５】図１５（Ａ）は高さ情報を含む禁止領域情報で示される禁止領域１２２を示す図であり、図１５（Ｂ）は軌跡１９１−１９２と禁止領域１２２との関係を示す図であり、図１５（Ｃ）は軌跡１９１−１９２に沿って文字列“おめでとう”を配置した例を示す図である。
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１１】
図１は、本実施形態に係るシステム１００の概略図である。図１に示されるシステム１００は、ＭＦＰ１０と、情報処理端末５０とで構成されている。ＭＦＰ１０及び情報処理端末５０は、通信ネットワーク１０１を通じて通信可能に構成されている。通信ネットワーク１０１は、例えば、有線ＬＡＮ、無線ＬＡＮ、或いはこれらの組み合わせであってもよい。または、ＭＦＰ１０及び情報処理端末５０は、ＵＳＢケーブルによって接続されていてもよい。
【００１２】
ＭＦＰ１０は、図１に示されるように、プリンタ１１と、スキャナ１２と、ディスプレイ２３と、ユーザＩ／Ｆ２４と、通信Ｉ／Ｆ２５と、ＣＰＵ３１と、メモリ３２と、通信バス３３とを主に備える。ＭＦＰ１０を構成する各構成要素は、通信バス３３を通じて相互に接続されている。
【００１３】
プリンタ１１は、画像データで示される画像をシートに記録するプリント動作を実行するハードウェアである。本実施形態では、インクを吐出して画像を記録するインクジェット方式のプリンタ１１の例を説明するが、プリンタ１１の記録方式は電子写真方式等であってもよい。スキャナ１２は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行するハードウェアである。なお、スキャナ１２は、省略可能である。
【００１４】
ディスプレイ２３は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ等であり、各種情報を表示する表示面を備える。
【００１５】
ユーザＩ／Ｆ２４は、入力操作を受け付けるインタフェースである。具体的には、ユーザＩ／Ｆ２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、ユーザＩ／Ｆ２４は、ディスプレイ２３の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ２３の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、入力操作の一例である。「オブジェクト」とは、例えば、ディスプレイ２３に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
【００１６】
タッチセンサとして実現されるユーザＩ／Ｆ２４は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ２３に表示されたオブジェクトの位置をタップする入力操作は、当該オブジェクトを指定する指定操作の一例である。以下、オブジェクトを指定する指定操作を、単に「オブジェクトの指定」、「オブジェクトに対する指定操作」等と表記することがある。
【００１７】
通信Ｉ／Ｆ２５は、通信ネットワーク１０１を通じて外部装置と通信可能なインタフェースである。すなわち、ＭＦＰ１０は、通信Ｉ／Ｆ２５を通じて外部装置に各種情報を送信し、通信Ｉ／Ｆ２５を通じて外部装置から各種情報を受信する。通信Ｉ／Ｆ２５の具体的な通信手順は特に限定されないが、例えば、Ｗｉ−Ｆｉ（登録商標）を採用することができる。また、ＭＦＰ１０及び情報処理端末５０がＵＳＢケーブルで接続される場合、通信Ｉ／Ｆ２５は、ＵＳＢケーブルを着脱可能なＵＳＢ−Ｉ／Ｆであってもよい。
【００１８】
ＣＰＵ３１は、ＭＦＰ１０の全体動作を制御するものである。ＣＰＵ３１は、ユーザＩ／Ｆ２４を通じて入力された各種情報、通信Ｉ／Ｆ２５を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ３２から読み出して実行する。ＣＰＵ３１及びメモリ３２は、コントローラの一例を構成する。
【００１９】
メモリ３２は、ＯＳ３４と、装置プログラム３５とを記憶している。装置プログラム３５は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ３２は、装置プログラム３５の実行に必要なデータ或いは情報等を記憶する。メモリ３２は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、ＭＦＰ１０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ３１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００２０】
メモリ３２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する情報処理端末５０のメモリ６２についても同様である。
【００２１】
情報処理端末５０は、図１に示されるように、ディスプレイ５３と、ユーザＩ／Ｆ５４と、通信Ｉ／Ｆ５５と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。情報処理端末５０に含まれるディスプレイ５３、ユーザＩ／Ｆ５４、通信Ｉ／Ｆ５５、ＣＰＵ６１、メモリ６２、及び通信バス６３は、ＭＦＰ１０に含まれるディスプレイ２３、ユーザＩ／Ｆ２４、通信Ｉ／Ｆ２５、ＣＰＵ３１、メモリ３２、及び通信バス３３と同様の構成であるので、説明は省略する。ＣＰＵ６１及びメモリ６２は、コントローラの一例である。情報処理端末５０は、例えば、携帯電話、スマートフォン、タブレット端末、或いはＰＣ等である。
【００２２】
情報処理端末のユーザＩ／Ｆ５４は、入力媒体をタッチしたタッチ面上の位置を示す位置情報を出力する位置センサを備える。一例として、ユーザＩ／Ｆ５４のタッチ面は、ディスプレイ５３の表示面に重ねられていてもよい。すなわち、ディスプレイ５３及びユーザＩ／Ｆ５４は、タッチパネルディスプレイを構成していてもよい。そして、この場合の位置情報は、入力媒体がタッチした表示面上の位置を示す。これは、タッチ面上のタッチ位置に対応する表示面上の位置の一例である。
【００２３】
他の例として、ユーザＩ／Ｆ５４のタッチ面は、ディスプレイ５３と異なるタッチパッド上に設けられていてもよい。この場合のユーザＩ／Ｆ５４は、位置センサを有するタッチパッドとなる。さらに他の例として、ユーザＩ／Ｆ５４のタッチ面は、机や床などの任意の面であってもよい。この場合のユーザＩ／Ｆ５４は、位置センサを有する入力媒体であるタッチペンとなる。また、この場合のＯＳ６４は、タッチ面上を移動する入力媒体に追従して表示面上を移動するポインタ画像（例えば、矢印を表す画像）を、ディスプレイ５３に表示させる。そして、この場合の位置情報は、ポインタ画像が表示された表示面上の位置を示す。これは、タッチ面上のタッチ位置に対応する表示面上の位置の他の例である。
【００２４】
本明細書において、タッチ面に当接させた状態の入力媒体を移動させる入力操作を、「スワイプ操作」と表記する。スワイプ操作は、タッチ面上を任意の向きに移動させることが可能な入力操作である。より詳細には、スワイプ操作を行うユーザは、任意の形状（例えば、直線、円弧、或いはこれらの組み合わせ等）の軌跡を描くように、タッチ面上で入力媒体を移動させることができる。
【００２５】
メモリ６２は、例えば図２（Ａ）に示されるように、複数のテンプレート画像データを記憶することができる。テンプレート画像データは、ハガキの通信面に記録されるテンプレート画像を示すデータである。本実施形態では、年賀状の通信面に記録されるテンプレート画像の例を説明するが、テンプレート画像の用途はこれに限定されず、例えば、暑中見舞い、クリスマスカード等にも応用することができる。テンプレート画像データは背景画像データの一例であり、テンプレート画像は背景画像の一例である。
【００２６】
また、メモリ６２は、テンプレート画像データに対応付けて、禁止領域情報を記憶することができる。禁止領域情報は、対応するテンプレート画像データで示されるテンプレート画像上の禁止領域を特定するための情報である。一例として、禁止領域は、横１０００ピクセル×縦１５００ピクセルのテンプレート画像の左上端位置を基準として特定される。より詳細には、テンプレート画像データ“テンプレートＡ”の禁止領域情報は、テンプレート画像上の左端位置“ｌｅｆｔ”、上端位置“ｔｏｐ”、右端位置“ｒｉｇｈｔ”、及び下端位置“ｂｏｔｔｏｍ”の組み合わせによって、禁止領域を特定する。
【００２７】
他の例として、禁止領域は、テンプレート画像を構成する画素の特徴によって特定される。より詳細には、テンプレート画像データ“テンプレートＣ”の禁止領域情報は、テンプレート画像を構成する複数の画素のうち、透過画素が連続する領域（以下、「透過領域」と表記する。）を、禁止領域と特定する。透過画素とは、例えば、各画素に設定された４つの値（例えば、Ｒ、Ｇ、Ｂ、α）のうち、α値で示される透過度が閾値（例えば、９０％）以上の画素を指す。なお、禁止領域は、透過領域を含む相似形の領域であってもよい。すなわち、禁止領域は、透過領域を囲む帯状のマージン領域を含んでもよい。
【００２８】
さらに、禁止領域情報は、例えば図１５（Ａ）に示されるように、禁止領域に含まれる複数の画素それぞれのＺ方向の高さを示す情報（以下、「高さ情報」と表記する。）を含むことができる。Ｚ方向とは、表示面に交差する方向を指す。より詳細には、Ｚ方向とは、表示面に平行なＸ方向及びＹ方向に直交する方向を指す。高さ情報の具体例は特に限定されないが、例えば、禁止領域の各画素と基準面とのＺ方向の距離を示す情報でもよいし、禁止領域内の座標を入力すると高さ情報が出力される関数でもよい。
【００２９】
禁止領域情報は、例えば、テンプレート画像データの制作者或いは端末プログラム６５の開発者によって予め設定される。また、禁止領域情報が対応付けられていないテンプレート画像データがメモリ６２に記憶されていてもよい。すなわち、テンプレート画像データの制作者或いは端末プログラム６５の開発者は、例えば、耐言おうするテンプレート画像上の強調したい絵や文字列、写真や差出人の情報を合成するために予め予約された領域等を、禁止領域に設定すればよい。
【００３０】
また図示は省略するが、メモリ６２には、写真フォルダが設けられていてもよい。写真フォルダには、例えば、不図示のカメラで撮影した写真データ、或いは不図示のサーバからダウンロードした写真データ等が格納される。
【００３１】
［システム１００の動作］
図３〜図６を参照して、本実施形態に係るシステム１００の動作を説明する。
【００３２】
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ３１、６１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ３１、６１の処理を表している。ＣＰＵ３１、６１による処理は、ＯＳ３４、６４を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ６１が要求することなくデータを受信するという処理も、「ＣＰＵ６１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００３３】
まず、情報処理端末５０の端末プログラム６５は、ユーザの指示に従ってＯＳ６４によって起動されたことに応じて、図７（Ａ）に示されるテンプレート選択画面をディスプレイ５３に表示させる（Ｓ１１）。テンプレート選択画面は、複数のテンプレートアイコン１１１、１１２、１１３、１１４を含む。テンプレートアイコン１１１〜１１４は、メモリ６２に記憶された複数のテンプレート画像データの１つに対応する。そして、端末プログラム６５は、テンプレート選択画面に対する入力操作を、ユーザＩ／Ｆ５４を通じて受け付ける（Ｓ１２）。Ｓ１２の処理は、第３受付処理の一例である。
【００３４】
次に、端末プログラム６５は、例えばテンプレートアイコン１１３を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１２：Ｙｅｓ）、指定されたテンプレートアイコン１１３に対応付けられたテンプレート画像データ“テンプレートＣ”を、メモリ６２から読み出す。次に、端末プログラム６５は、図７（Ｂ）に示されるテンプレート編集画面を、テンプレート選択画面に代えてディスプレイ５３に表示させる（Ｓ１３）。Ｓ１３の処理は、第１表示処理及び表示処理の一例である。そして、端末プログラム６５は、テンプレート編集画面に対する入力操作を、ユーザＩ／Ｆ５４を通じて受け付ける（Ｓ１４〜Ｓ１６）。
【００３５】
テンプレート編集画面は、テンプレート画像１２１と、［テキスト］アイコン１２５と、［プリント］アイコン１２６とを含む。テンプレート画像１２１は、メモリ６２から読み出したテンプレート画像データ“テンプレートＣ”で示される画像である。また、テンプレート画像１２１は、透過領域１２２を含む。なお、本実施形態では、透過領域１２２＝禁止領域なので、「禁止領域１２２」と表記することがある。［テキスト］アイコン１２５は、テンプレート画像１２１に文字列を合成する指示に対応する。［プリント］アイコン１２６は、後述する処理によって編集されたテンプレート画像１２１をハガキの通信面に記録する指示に対応する。
【００３６】
端末プログラム６５は、例えば、透過領域１２２を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１４：Ｙｅｓ）、図８（Ａ）に示される写真選択画面を、テンプレート編集画面に代えてディスプレイ５３に表示させる（Ｓ１７）。写真選択画面は、写真アイコン１３１、１３２、１３３、１３４、１３５、１３６を含む。写真アイコン１３１〜１３６それぞれは、メモリ６２の写真フォルダに格納された複数の写真データの１つに対応する。そして、端末プログラム６５は、写真選択画面に対する入力操作を、ユーザＩ／Ｆ５４を通じて受け付ける（Ｓ１８）。
【００３７】
次に、端末プログラム６５は、例えば、写真アイコン１３５を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１８：Ｙｅｓ）、指定された写真アイコン１３５に対応する写真データで示される写真を、テンプレート画像１２１の透過領域１２２に合成する（Ｓ１９）。そして、端末プログラム６５は、図８に示されるように、透過領域１２２に写真が合成されたテンプレート画像１２１を含むテンプレート編集画面を、写真選択画面に代えてディスプレイ５３に表示させる（Ｓ１３）。
【００３８】
端末プログラム６５は、写真を合成したテンプレート画像１２１を含むテンプレート編集画面をディスプレイ５３に表示する処理を、ＡＰＩを介してＯＳ６４に指示してもよい。写真を合成したテンプレート画像１２１とは、例えば、写真アイコン１３５に対応する写真データで示される写真をＺ方向の奥側、テンプレート画像１２１をＺ方向の手前側とし、且つ透過領域１２２の中心と写真の中心とが一致するように、テンプレート画像１２１に写真を合成した画像である。これにより、テンプレート画像１２１に合成された写真のうち、透過領域と重なる部分が表示され、透過領域と異なる領域と重なる部分がテンプレート画像１２１によって塗りつぶされる。
【００３９】
また、端末プログラム６５は、例えば、図８（Ｂ）の［テキスト］アイコン１２５を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１５：Ｙｅｓ）、テキスト合成処理を実行する（Ｓ２０）。テキスト合成処理は、ユーザが入力した文字列を、ユーザが指定したレイアウトでテンプレート画像１２１上に合成する処理である。図４を参照して、テキスト合成処理の詳細を説明する。
【００４０】
まず、端末プログラム６５は、図９（Ａ）に示されるテキスト入力画面を、テンプレート編集画面に代えてディスプレイ５３に表示させる（Ｓ３１）。テキスト入力画面は、テンプレート画像１２１と、［Ａ］アイコン１４１と、［〜］アイコン１４２と、［属］アイコン１４３とを含む。そして、端末プログラム６５は、テキスト入力画面に対する入力操作を、ユーザＩ／Ｆ５４を通じて受け付ける（Ｓ３２、Ｓ３３）。テキスト入力画面において、［Ａ］アイコン１４１、［〜］アイコン１４２、及び［属］アイコン１４３のうちの１つが選択状態となり、その他が非選択状態となる。
【００４１】
図９（Ａ）に示されるテキスト入力画面は、［Ａ］アイコン１４１が選択状態であり、［〜］アイコン１４２及び［属］アイコン１４３が非選択状態であり、テキストボックス１４４及びソフトウェアキーボード１４５を含む。すなわち、［Ａ］アイコン１４１を選択状態とすることによって、テキスト入力画面を通じて文字列が入力可能となる。また、端末プログラム６５は、例えば、図９（Ｂ）及び図１０に示されるテキスト入力画面の［Ａ］アイコン１４１を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じても、図９（Ａ）に示されるテキスト入力画面をディスプレイ５３に表示させる。
【００４２】
また、端末プログラム６５は、例えば、図９（Ａ）に示される［〜］アイコン１４２を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて、［〜］アイコン１４２を選択状態とし、［Ａ］アイコン１４１及び［属］アイコン１４３を非選択状態とする。そして、端末プログラム６５は、図１０（Ａ）に示されるように、［完了］アイコン１４６をテキスト入力画面に表示させる。［〜］アイコン１４２を選択状態とすることによって、ソフトウェアキーボード１４５を通じて入力された文字列のレイアウトが指定可能となる。
【００４３】
さらに、端末プログラム６５は、例えば、図１０（Ａ）に示される［属］アイコン１４３を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて、［属］アイコン１４３を選択状態とし、［Ａ］アイコン１４１及び［〜］アイコン１４２を非選択状態とする。そして、端末プログラム６５は、文字列の属性（例えば、フォントタイプ、フォントサイズ、色など）の指定を受け付ける不図示のオブジェクトをテキスト入力画面に表示させる。そして、端末プログラム６５は、ソフトウェアキーボード１４５を通じて入力された文字列の属性を、当該オブジェクトを通じて受け付けた属性に変更する。
【００４４】
端末プログラム６５は、例えば、Ｎ（＝４）個の文字を含む文字列“よろしく”の入力操作及び［確定］アイコンを指定する指定操作を、図９（Ａ）に示されるソフトウェアキーボード１４５を通じて受け付ける（Ｓ３２：Ｙｅｓ）。この処理は、第１受付処理及び受付処理の一例である。次に、端末プログラム６５は、入力された文字数Ｎ（Ｎは２以上の整数であって、本実施形態では“４”）と要素数が一致する配列“文字［ｉ］”をメモリ６２内に確保する。そして、端末プログラム６５は、入力された各文字“よ”、“ろ”、“し”、“く”の文字コードを、文字［ｉ］に入力順に記憶させる（Ｓ３４）。
【００４５】
入力された文字列内における文字［ｉ］の順番は、変数ｉの昇順である。すなわち、ソフトウェアキーボード１４５を通じて１文字ずつ順番に入力された場合の「順番」は、入力順に対応する。一方、所謂コピー＆ペースト機能を用いて複数の文字が纏めて入力された場合の「順番」は、横書きの場合は左端から右向きの順、縦書きの場合は上端から下向きの順である。但し、「順番」の具体例は前述の例に限定されず、例えば、横書きの場合の右端から左向きの順、縦書きの場合の下端から上向きの順等でもよい。
【００４６】
次に、端末プログラム６５は、テンプレート画像１２１上のテキストボックス１４４の表示位置（以下、「初期位置」と表記する。）に、入力された文字列“よろしく”示す文字画像を合成する（Ｓ３５）。そして、端末プログラム６５は、図９（Ｂ）に示されるように、文字列“よろしく”が初期位置に合成されたテンプレート画像１２１を含むテキスト入力画面を、ディスプレイ５３に表示させる（Ｓ３１）。
【００４７】
次に、端末プログラム６５は、例えば、図９（Ｂ）の［〜］アイコン１４２を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ３２：Ｎｏ＆Ｓ３３：レイアウト）、ソフトウェアキーボード１４５に代えて、［完了］アイコン１４６をテキスト入力画面に表示させる。また、端末プログラム６５は、軌跡情報を記憶する配列“軌跡［ｉ］”をメモリ６２内に確保する。軌跡［ｉ］は、位置センサから出力される位置情報を記憶する。すなわち、軌跡情報は、複数の位置情報を含む。軌跡［ｉ］の要素数は、後述するＳ３６で位置情報を記憶させるのに十分な数とする。
【００４８】
次に、端末プログラム６５は、［〜］アイコン１４２が選択状態にされたテキスト入力画面のテンプレート画像１２１上において、ユーザＩ／Ｆ５４を通じてスワイプ操作を受け付ける（Ｓ３７：Ｎｏ）。そして、端末プログラム６５は、例えば図２（Ｂ）に示されるように、スワイプ操作中に所定の時間間隔でユーザＩ／Ｆ５４から出力される位置情報を、軌跡［ｉ］に出力順に記憶させる（Ｓ３６）。Ｓ３６、Ｓ３７の処理は、タッチ面上を移動する入力媒体の軌跡を示す軌跡情報を取得する取得処理の一例である。なお、図２（Ｂ）に示される軌跡情報は、ユーザＩ／Ｆ５４から出力される位置情報に基づいて、端末プログラム６５が生成してもよいし、ＯＳ６４が生成して端末プログラム６５に引き渡してもよい。
【００４９】
なお、本実施形態では、繰り返し実行されるＳ３６において、図２（Ｂ）に示されるように、位置情報が軌跡［１］〜［２００］に記憶されたものとする。また、端末プログラム６５は、例えば図１０（Ａ）に示されるように、スワイプ操作によってタッチ面上を移動する入力媒体に追従して、軌跡を示す軌跡画像１４７を表示面上の対応する位置に表示させる。軌跡画像１４７は、図２（Ｂ）に示される位置情報で示される表示面上の位置を結ぶ線である。
【００５０】
次に、端末プログラム６５は、スワイプ操作が終了したと判断したことに応じて（Ｓ３７：Ｙｅｓ）、軌跡情報で示される軌跡が禁止領域１２２に重なっているか否かを判断する（Ｓ３８）。換言すれば、端末プログラム６５は、軌跡情報に含まれる複数の位置情報の一部が禁止領域１２２内の位置を示すか否かを判断する。さらに換言すれば、端末プログラム６５は、表示面に表示させた軌跡画像１４７が透過領域１２２に重なるか否かを判断する。Ｓ３８の処理は、第１判断処理の一例である。
【００５１】
次に、端末プログラム６５は、軌跡が禁止領域１２２に重ならないと判断したことに応じて（Ｓ３８：Ｎｏ）、レイアウト処理Ａを実行する（Ｓ３９）。スワイプ操作の終了は、入力媒体がタッチ面から離間されたこと、より詳細には、位置情報がユーザＩ／Ｆ５４から出力されなくなったことによって判断できる。レイアウト処理Ａは、ソフトウェアキーボード１４５を通じて入力された文字列“よろしく”を、Ｓ３６６で記憶した軌跡情報で示される入力媒体の移動軌跡に沿って、テンプレート画像１２１に合成する処理である。図５を参照して、レイアウト処理Ａの詳細を説明する。
【００５２】
まず、端末プログラム６５は、軌跡情報に含まれる位置情報のうち、ソフトウェアキーボード１４５を通じて入力された文字数Ｎに一致する数の位置情報を抽出する（Ｓ４１〜Ｓ４５）。換言すれば、端末プログラム６５は、スワイプ操作の軌跡上の点を対象点として抽出する抽出処理（Ｓ４１、Ｓ４４）を、対象点をＮ個抽出するまで繰り返し実行する。本実施形態では、Ｒａｍｅｒ−Ｄｏｕｇｌａｓ−Ｐｅｕｃｋｅｒアルゴリズムを用いて、スワイプ操作の軌跡上の対象点を抽出する。図１１を参照して、スワイプ操作の軌跡から４つの対象点を抽出する方法を説明する。
【００５３】
端末プログラム６５は、図１１（Ａ）に示されるように、軌跡の始点及び終点を対象点として抽出する（Ｓ４１）。すなわち、端末プログラム６５は、軌跡［１］の要素である位置情報（ｘ１，ｙ１）と、軌跡［２００］の要素である位置情報（ｘ２００，ｙ２００）とで示される表示面上の点を、対象点として抽出する。そして、端末プログラム６５は、対象点を示す配列“軌跡［ｊ］”のインデックス“１”、“２００”をメモリ６２に一時記憶させる。そして、端末プログラム６５は、抽出した特徴点の数を示す変数ｉに２をセットする（Ｓ４２）。Ｓ４１の処理は、１回目の抽出処理の一例である。
【００５４】
次に、端末プログラム６５は、変数ｉが文字数Ｎに達するまで（Ｓ４３：Ｎｏ）、Ｓ４４、Ｓ４５の処理を繰り返し実行する。より詳細には、端末プログラム６５は、既に抽出した対象点を結ぶ仮想線から最も遠い軌跡上の点を、対象点として抽出する（Ｓ４４）。そして、端末プログラム６５は、変数ｉに１を加算する（Ｓ４５）。Ｓ４４の処理は、２回目以降の抽出処理の一例である。
【００５５】
まず、端末プログラム６５は、図１１（Ｂ）に示されるように、２つの対象点を結ぶ破線から最も遠い軌跡上の点として、軌跡［７２］で示される対象点を抽出し、インデックス“７２”をメモリ６２に一時記憶させる。また、端末プログラム６５は、図１１（Ｃ）に示されるように、３つの対象点を結ぶ破線から最も遠い軌跡上の点として、軌跡［３８］で示される対象点を抽出し、インデックス“３８”をメモリ６２に一時記憶させる。これにより、例えば、軌跡の始点、終点、曲点、及び閾値長さ以上の直線の中点のうちのＮ点が、対象点として抽出される。曲点とは、例えば、軌跡の向きが大きく変わる点（例えば、Ｕターンする点、鋭角に曲がる点）であって、一般的に「エッジ」或いは「コーナー」等と呼ばれる点を指す。また、数学上の変曲点、極大点、極小点等に相当する点は、曲点に含まれてもよい。
【００５６】
次に、端末プログラム６５は、変数ｉが文字数Ｎに達したことに応じて（Ｓ４３：Ｙｅｓ）、軌跡［１］、［２００］、［７２］、［３８］で示される対象点を、軌跡の方向に沿って並び替える（Ｓ４６）。より詳細には、端末プログラム６５は、入力された文字数Ｎ（＝４）と要素数が一致する配列“対象点［ｉ］”をメモリ６２内に確保する。そして、端末プログラム６５は、軌跡［１］、［２００］、［７２］、［３８］の要素である位置情報を、メモリ６２に一時記憶させたインデックスの昇順［１］、［３８］、［７２］、［２００］に、対象点［１］〜［４］に記憶させる。
【００５７】
次に、端末プログラム６５は、変数ｉに初期値（＝１）をセットする（Ｓ４７）。そして、端末プログラム６５は、文字［ｉ］で示される文字を対象点［ｉ］で示されるテンプレート画像１２１上の位置に合成する処理（Ｓ４８）を、変数ｉをインクリメントしながら繰り返し実行する（Ｓ４９：Ｎｏ→Ｓ５０）。次に図４に戻って、端末プログラム６５は、図１０（Ｂ）に示されるように、文字列“よろしく”がスワイプ操作の軌跡に沿って合成されたテンプレート画像１２１を含むテキスト入力画面を、ディスプレイ５３に表示させる（Ｓ３１）。
【００５８】
すなわち、端末プログラム６５は、対象点［１］の位置情報（ｘ１、ｙ１）で示されるテンプレート画像１２１上の位置に、文字［１］で示される文字“よ”を合成する。また、端末プログラム６５は、対象点［２］の位置情報（ｘ３８、ｙ３８）で示されるテンプレート画像１２１上の位置に、文字［２］で示される文字“ろ”を合成する。また、端末プログラム６５は、対象点［３］の位置情報（ｘ７２、ｙ７２）で示されるテンプレート画像１２１上の位置に、文字［３］で示される文字“し”を合成する。さらに、端末プログラム６５は、対象点［４］の位置情報（ｘ２００、ｙ２００）で示されるテンプレート画像１２１上の位置に、文字［４］で示される文字“く”を合成する。
【００５９】
端末プログラム６５は、図１０（Ｂ）に示される［プリント］アイコン１２６を指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１６：Ｙｅｓ）、通信Ｉ／Ｆ５５を通じてＭＦＰ１０にプリント指示情報を送信する（Ｓ２１）。プリント指示情報は、編集されたテンプレート画像１２１をハガキの通信面に記録するプリント動作を、ＭＦＰ１０に実行させるための情報である。プリント指示情報は、編集されたテンプレート画像１２１を示すテンプレート画像データを含む。なお、出力処理の具体例はこれに限定されず、テンプレート画像データをメモリ６２の所定の領域に記憶させることでもよいし、インターネット上の不図示のサーバにアップロードすることでもよい。
【００６０】
一方図示は省略するが、ＭＦＰ１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて情報処理端末５０からプリント指示情報を受信する。そして、装置プログラム３５は、受信したプリント指示情報に従ったプリント動作をプリンタ１１に実行させる。すなわち、プリンタ１１は、プリント指示情報に含まれるテンプレート画像データで示されるテンプレート画像１２１を、ハガキの通信面に印刷する。
【００６１】
一方、端末プログラム６５は、例えば、図１２（Ａ）、図１２（Ｃ）、及び図１４（Ａ）に示されるように、ユーザＩ／Ｆ５４を通じて入力された軌跡が禁止領域１２２に重なると判断したことに応じて（Ｓ３８：Ｙｅｓ）、レイアウト処理Ｂを実行する（Ｓ４０）。レイアウト処理Ｂは、入力された軌跡が禁止領域１２２と重ならないように軌跡情報を補正し、補正した軌跡情報で示される軌跡に沿って、テンプレート画像１２１に文字列を合成する処理である。以下、ソフトウェアキーボード１４５を通じて文字列“おめでとう”が入力されたことを前提として、レイアウト処理Ｂの詳細を説明する。
【００６２】
まず、端末プログラム６５は、テンプレート画像１２１に含まれる禁止領域１２２が勾配を有するか否かを判断する（Ｓ６１）。すなわち、端末プログラム６５は、Ｓ１２で指定されたテンプレート画像データに対応付けられた禁止領域情報が高さ情報を含むか否かを判断すればよい。また、端末プログラム６５は、入力された軌跡の終点が禁止領域１２２内に位置するか否かを判断する（Ｓ６２）。すなわち、端末プログラム６５は、軌跡情報の最後の位置情報で示される位置が禁止領域１２２内か否かを判断すればよい。Ｓ６１の処理は第３判断処理の一例であり、Ｓ６２の処理は第２判断処理の一例である。
【００６３】
端末プログラム６５は、例えば図１２（Ａ）或いは図１２（Ｃ）に示されるように、禁止領域情報が高さ情報を含まず且つ終点１５３が禁止領域１２２内だと判断したことに応じて（Ｓ６１：なし＆Ｓ６２：Ｙｅｓ）、図１２（Ｂ）或いは図１２（Ｄ）に示されるように、軌跡が禁止領域１２２を避けるように軌跡情報を補正する（Ｓ６３、Ｓ６４）。Ｓ６３、Ｓ６４の処理は、補正処理の一例である。
【００６４】
一例として、端末プログラム６５は、図１２（Ａ）に示される軌跡の終点１５３を、禁止領域１２２の輪郭のうちの終点１５３に最も近い位置１５４に移動させる（Ｓ６３）。すなわち、端末プログラム６５は、メモリ６２に記憶された軌跡情報の最後の位置情報を、禁止領域１２２の輪郭上の位置１５４を示す位置情報で上書きすればよい。次に、端末プログラム６５は、図１２（Ｂ）に示されるように、軌跡の進入点１５２及び移動後の終点１５４の間の軌跡が、禁止領域１２２の輪郭に沿って最短距離で結ばれるように、メモリ６２に記憶された軌跡情報を補正する（Ｓ６４）。進入点１５２とは、禁止領域１２２外から禁止領域１２２内に進入する軌跡と輪郭との交点である。すなわち、端末プログラム６５は、進入点１５２及び移動後の終点１５４の間の軌跡を、禁止領域１２２の輪郭に沿って時計回りに延びる軌跡に補正する。
【００６５】
他の例として、端末プログラム６５は、図１２（Ｃ）に示される軌跡の終点１６３を、禁止領域１２２の輪郭のうちの終点１６３に最も近い位置１６４に移動させる（Ｓ６３）。 次に、端末プログラム６５は、図１２（Ｄ）に示されるように、軌跡の進入点１６２及び移動後の終点１６４の間の軌跡（以下、軌跡の両端の参照番号を用いて、「軌跡１６２−１６４」のように表記する。）が、禁止領域１２２の輪郭に沿って最短距離で結ばれるように、メモリ６２に記憶された軌跡情報を補正する（Ｓ６４）。すなわち、端末プログラム６５は、軌跡１６２−１６４を、禁止領域１２２の輪郭に沿って反時計回りに延びる軌跡に補正する。
【００６６】
次に、端末プログラム６５は、レイアウト処理Ａを実行する（Ｓ６５）。以下、ソフトウェアキーボード１４５を通じて入力された文字列“おめでとう”を、図１２に示される軌跡に沿って、テンプレート画像１２１に合成するレイアウト処理Ａを説明する。なお、前述の説明との共通点の詳細な説明は省略し、相違点を中心に説明する。
【００６７】
まず、端末プログラム６５は、入力された文字列“おめでとう”の文字数に対応する５個の対象点を抽出する（Ｓ４１〜Ｓ４５）。そして、端末プログラム６５は、Ｓ６３、Ｓ６４で補正した軌跡情報で示される軌跡に沿った表示面上の複数の位置それぞれにおいて、入力された文字列に含まれる複数の文字それぞれを、文字列内における順番に従ってテンプレート画像１２１に合成する（Ｓ４８〜Ｓ５０）。
【００６８】
図１２（Ｂ）の例では、始点１５１、進入点１５２、及び移動後の終点１５４の他に、２つの対象点１５５、１５６が抽出されるものとする。そして、始点１５１に対応する位置に文字“お”が合成され、進入点１５２に対応する位置に文字“め”が合成され、対象点１５５に対応する位置に文字“で”が合成され、対象点１５６に対応する位置に文字“と”が合成され、移動後の終点１５４に対応する位置に文字“う”が合成される。Ｓ６５で実行されるＳ４８の処理は、第１合成処理及び合成処理の一例である。
【００６９】
また、端末プログラム６５は、Ｓ４８〜Ｓ５０の処理に先立って、進入点１５２及び移動後の終点１５４の間に合成する文字“め”、“で”、“と”、“う”を、当該文字が配置される位置の輪郭の形状に合わせてエンベロープ変形してもよい。図１３を参照して、対象点１５６に対応する位置に合成する文字“と”を、エンベロープ変形する処理を説明する。エンベロープ変形のアルゴリズムは既に周知なので、詳細な説明は省略するが、例えば以下のような考え方で実現される。
【００７０】
まず、端末プログラム６５は、図１３（Ａ）に示されるように、変形前の文字“と”を囲む正方形の頂点、各辺の中点、及び対角線の交点の位置に、９個のグリッド１７１〜１７９を仮想的に配置する。次に、端末プログラム６５は、図１３（Ｂ）に示されるように、グリッド１７１〜１７９で画定される矩形が文字“と”を合成する位置の輪郭の形状に沿うように、グリッド１７１〜１７９の少なくとも１つを移動させる。図１３の例では、グリッド１７４がグリッド１７４’の位置に移動される。
【００７１】
そして、端末プログラム６５は、図１３（Ｂ）に示されるグリッド１７１〜１７３、１７４’、１７５〜１７９で画定される矩形の形状に合わせて、文字“と”を変形させる。一例として、グリッド１７４をグリッド１７５から離れる向きに移動させると、文字“と”が左向きに引き延ばされる。他の例として、グリッド１７４をグリッド１７５に近づく向きに移動させると、文字“と”が右向きに押し潰される。
【００７２】
また図６に戻って、端末プログラム６５は、例えば図１４（Ａ）に示されるように、禁止領域情報が高さ情報を含まず且つ終点１８４が禁止領域１２２外だと判断したことに応じて（Ｓ６１：なし＆Ｓ６２：Ｎｏ）、例えば図１４（Ｂ）〜（Ｄ）に示される方法で、軌跡が禁止領域１２２を避けるように軌跡情報を補正する（Ｓ６６）。Ｓ６６の処理は、補正処理の一例である。
【００７３】
一例として、端末プログラム６５は、図１４（Ｂ）に示されるように、軌跡１８２−１８４を示す軌跡情報を、当該軌跡の進入点１８２が退出点１８３に一致するように補正する（Ｓ６６）。退出点１８３とは、禁止領域１２２内から禁止領域１２２外に退出する軌跡と輪郭との交点を指す。すなわち、軌跡１８２−１８４の進入点１８２が退出点１８３の位置に一致するように、軌跡１８２−１８４が平衡移動される。
【００７４】
他の例として、端末プログラム６５は、図１４（Ｃ）に示されるように、軌跡１８２−１８４を削除し、且つ退出点１８３から終点１８４に向かう向きに直線的に延びる代替軌跡１８３”−１８４”を追加してもよい。すなわち、端末プログラム６５は、進入点１８２及び終点１８４の間の位置情報を軌跡情報から削除し、代替軌跡１８３”−１８４”を示す位置情報を軌跡情報に追加すればよい。代替軌跡１８３”−１８４”は、例えば、予め定められた長さの直線であって、退出点１８３における禁止領域１２２の法線方向に延びる。さらに他の例として、端末プログラム６５は、図１４（Ｄ）に示されるように、軌跡１８２−１８４を削除してもよい。
【００７５】
次に、端末プログラム６５は、軌跡の始点１８１及び進入点１８２の間に合成する文字数Ｎ１と、軌跡の退出点１８３及び終点１８４の間に合成する文字数Ｎ２とを決定する（Ｓ６７）。具体的には、端末プログラム６５は、始点１８１から進入点１８２までの軌跡（以下、「第１軌跡」と表記する。）に沿った長さをＬ１と、退出点１８３から終点１８４までの軌跡（以下、「第２軌跡」と表記する。）に沿った長さをＬ２とで、入力された文字数Ｎを比例配分する。すなわち、Ｎ１＝Ｎ×Ｌ１／（Ｌ１＋Ｌ２）、Ｎ２＝Ｎ×Ｌ１／（Ｌ１＋Ｌ２）となる。Ｓ６７の処理は、決定処理の一例である。
【００７６】
次に、端末プログラム６５は、第１軌跡及び第２軌跡それぞれに対するレイアウト処理Ａを実行する（Ｓ６８）。すなわち、端末プログラム６５は、第１軌跡からＮ１個の対象点を抽出し、抽出した対象点に対応する表示面上の位置に文字列内における順番の先頭からＮ１個の文字を合成する。また、端末プログラム６５は、第２軌跡からＮ２個の対象点を抽出し、抽出した対象点に対応する表示面上の位置に文字列内における順番の（Ｎ１＋１）個目からＮ２個の文字を合成する。
【００７７】
再び図６に戻って、端末プログラム６５は、例えば図１５（Ａ）に示されるように、禁止領域情報が高さ情報を含むと判断したことに応じて（Ｓ６１：あり）、レイアウト処理Ａを実行する（Ｓ６９）。Ｓ６９で実行するレイアウト処理Ａは、禁止領域１２２に重なる文字を変形する処理を、テンプレート画像１２１に合成するのに先立って実行する点で前述の説明と相違し、その他の点は前述の説明と共通する。Ｓ６９で実行されるＳ４８の処理は、第２合成処理の一例である。
【００７８】
より詳細には、端末プログラム６５は、図１５（Ｃ）に示されるように、禁止領域１２２に重なる位置に合成する文字を、高さ情報で示される禁止領域１２２の勾配に沿って、禁止領域１２２に投影した形状に変形する。すなわち、端末プログラム６５は、右上から左下に向かって上り勾配となる面に文字“め”を投影したように、文字“め”を射影変換する。また、端末プログラム６５は、右上から左下に向かって下り勾配となる面に文字“と”を投影したように、文字“と”を射影変換する。禁止領域１２２の勾配とは、例えば、禁止領域１２２に含まれる複数の画素それぞれのＺ方向の高さが連続的に変化することによって生じる「表示面に対する仮想的な傾斜」を指す。
【００７９】
また、端末プログラム６５は、禁止領域１２２に重なる位置に合成する文字を、合成する位置の高さが高いほど大きくしてもよい。すなわち、端末プログラム６５は、文字“め”、“と”を文字“お”、“う”より大きくしてもよい。さらに、端末プログラム６５は、文字“で”を文字“め”、“と”より大きくしてもよい。
【００８０】
［本実施形態の作用効果］
上記の実施形態によれば、ユーザが入力媒体を用いてタッチ面上に描いた軌跡に沿ってレイアウトされた文字列がテンプレート画像１２１に合成される。これにより、直感的な操作で柔軟且つ簡単に文字列をレイアウトすることができる。また、ユーザが描いた軌跡が予め定められた禁止領域１２２に重なる場合に、当該禁止領域１２２を避けるように軌跡情報が補正される。これにより、強調したい絵或いは文字が配置されるテンプレート画像１２１上の領域を禁止領域１２２に設定しておけば、当該絵（例えば、写真）或いは文字が入力された文字列で隠れてしまうことを抑制できる。
【００８１】
なお図１２の例のように、禁止領域１２２内に位置する終点１５３、１６３を、禁止領域１２２の輪郭上の最も近い位置に移動させ、進入点１５２、１６２及び移動後の終点１５４、１６４の間の軌跡を輪郭に沿わせることによって、補正の前後における軌跡の変化を最小限にすることができる。これにより、ユーザの所望する文字列のレイアウトを大きく変化させることなく、強調したい絵或いは文字が隠れることを抑制できる。
【００８２】
また、図１３の例のように、禁止領域１２２の輪郭上に合成される文字を、合成位置の輪郭の形状に合わせてエンベロープ変形させることによって、テンプレート画像１２１に合成する文字列のレイアウトを、さらに多様化することができる。但し、文字の変形のさせ方はエンベロープ変形に限定されず、輪郭線の向きに応じて文字を傾けてもよいし、輪郭の形状に応じて文字の大きさを変更してもよい。
【００８３】
また図１４の例のように、軌跡の始点１８１、進入点１８２、及び退出点１８３の位置を変更せずに軌跡を補正する異によって、ユーザが描いた軌跡の全体の流れを維持しつつ、強調したい絵或いは文字が隠れることを抑制できる。また、第１軌跡１８１−１８２及び第２軌跡１８３”−１８４”上に配置する文字数を、長さＬ１、Ｌ２で比例配分することによって、軌跡上に配置される文字の間隔を平準化することができる。
【００８４】
さらに図１５の例のように、高さ情報で特定される勾配に沿って文字を射影変換することによって、立体の禁止領域１２２の表面に文字を貼り付けたように見える。これにより、立体感のあるレイアウトを実現できる。
【００８５】
また、上記の実施形態によれば、テンプレート画像データ毎に禁止領域情報を対応付けるので、ユーザが指定したテンプレート画像１２１に対応する禁止領域１２２を避けるように軌跡情報が補正される。すなわち、テンプレート画像データの制作者或いは端末プログラム６５の開発者は、対応するテンプレート画像データ上で強調したい絵或いは文字を含む領域を、禁止領域に設定することができる。
【００８６】
なお、上記の実施形態のように、Ｒａｍｅｒ−Ｄｏｕｇｌａｓ−Ｐｅｕｃｋｅｒアルゴリズムを用いて、軌跡上から対象点を抽出することによって、文字列を軌跡上に適切に配置することができる。但し、対象点の抽出方法は、これに限定されない。他の例として、端末プログラム６５は、入力媒体の移動距離或いは移動時間で軌跡を（Ｎ−１）等分した境界のＮ点を、対象点として抽出してもよい。
【００８７】
また、上記の実施形態において、端末プログラム６５は、Ｓ６３＆Ｓ６４、Ｓ６６で補正した軌跡情報で示される軌跡と、［ＯＫ］アイコンとを含む確認画面を、ディスプレイ５３に表示させてもよい。この処理は、第２表示処理の一例である。次に、端末プログラム６５は、［ＯＫ］アイコンを指定する指定操作をユーザＩ／Ｆ５４を通じて受け付けたことに応じて、Ｓ６５、Ｓ６７＆Ｓ６８の処理を実行してもよい。この処理は、第２受付処理の一例である。また、［ＯＫ］アイコンの指定は、確認画面に表示された補正後の軌跡を確認したことに対応する確認操作の一例である。これにより、ユーザの意図と大きく異なる軌跡に沿って文字列がレイアウトされるのを抑制できる。
【００８８】
なお、図１３を参照して説明した文字のエンベロープ変形は、補正後の軌跡に沿って文字を合成する場合の他、例えば以下のような用途にも利用できる。端末プログラム６５は、文字列を入力する入力操作と、テンプレート画像１２１に含まれる輪郭線の一部を指定する指定操作とを、ユーザＩ／Ｆ５４を通じて受け付ける。次に、端末プログラム６５は、指定を受け付けた輪郭線から文字数に対応する数の対象点を抽出する。次に、端末プログラム６５は、入力を受け付けた文字列に含まれる複数の文字それぞれを、対応する対象点の位置における輪郭線の形状に合わせてエンベロープ変形する。そして、端末プログラム６５は、エンベロープ変形した文字を対応する対象点の位置に合成する。
【００８９】
なお、上記の実施形態では、スワイプ操作が終了してから対象点を抽出する処理を実行する例（Ｓ２８：Ｙｅｓ→Ｓ２９）を説明したが、対象点を抽出するタイミングはこれに限定されない。他の例として、端末プログラム６５は、スワイプ操作中に軌跡の始点、終点、曲点、及び閾値長さ以上の直線の中点等の対象点を検出したことに応じて、検出した対象点に入力された文字を入力順に配置してもよい。すなわち、入力媒体が表示面上を移動するのに追従して、入力された文字が入力順に配置されていってもよい。
【００９０】
また、上記の実施形態では、図１０（Ｂ）に示されるように、軌跡上にレイアウトした各文字の上下方向を、ディスプレイ５３の長手方向に統一した例を説明した。しかしながら、軌跡上における各文字のレイアウトは、これに限定されない。他の例として、端末プログラム６５は、例えば図１０（Ｂ）に示される各文字“よ”、“ろ”、“し”、“く”を、当該文字の上下方向と対象点における軌跡の法線方向とが一致する向きに回転させて、テンプレート画像１２１に合成してもよい。すなわち、図１０（Ｂ）の例によれば、文字“よ”、“く”が反時計周りに回転された状態でディスプレイ５３に表示される。
【００９１】
また、上記の実施形態では、年賀状の通信面に記録するテンプレート画像１２１に合成する文字をレイアウト或いは変形させる例を説明したが、本発明の用途はこれに限定されない。他の例として、刺繍データに従って布地に糸を縫い込むミシン、ラベルに文字列を記録するラベルプリンタ、円盤形状の画像をＣＤ−ＲＯＭの表面に記録するレーベルプリンタ、布地に画像を記録するガーメントプリンタ等において、入力された文字をタッチ面に対する入力操作に従ってレイアウト或いは変形させてもよい。
【００９２】
また、上記の実施形態のＭＦＰ１０及び情報処理端末５０において、メモリ３２、６２に記憶された各種プログラムがＣＰＵ３１、６１によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
【００９３】
さらに、本発明は、ＭＦＰ１０及び情報処理端末５０として実現できるだけでなく、ＭＦＰ１０及び情報処理端末５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワーク１０１を通じてＭＦＰ１０及び情報処理端末５０に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク１０１を通じて配信されてもよい。
【符号の説明】
【００９４】
１０・・・ＭＦＰ
１１・・・プリンタ
５０・・・情報処理端末
５３・・・ディスプレイ
５４・・・ユーザＩ／Ｆ
５５・・・通信Ｉ／Ｆ
６１・・・ＣＰＵ
６２・・・メモリ
６５・・・端末プログラム
【図１】
2019008388.tif 000003
【図２】
2019008388.tif 000004
【図３】
2019008388.tif 000005
【図４】
2019008388.tif 000006
【図５】
2019008388.tif 000007
【図６】
2019008388.tif 000008
【図７】
2019008388.tif 000009
【図８】
2019008388.tif 000010
【図９】
2019008388.tif 000011
【図１０】
2019008388.tif 000012
【図１１】
2019008388.tif 000013
【図１２】
2019008388.tif 000014
【図１３】
2019008388.tif 000015
【図１４】
2019008388.tif 000016
【図１５】
2019008388.tif 000017