以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。
図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(Wi-Fi Allianceの登録商標)を採用することができる。また、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は、例えば、携帯電話、スマートフォン、タブレット端末等である。より詳細には、携帯端末50のディスプレイ53は、表示画面のサイズが12インチ以下、より好ましくは8インチ以下であるのが望ましい。また、携帯端末50の入力I/F54は、ディスプレイ53の表示画面に重ねられたタッチパネルであるのが望ましい。
メモリ62は、ハガキプログラム65を記憶している。ハガキプログラム65は、ハガキの宛名面及び通信面に記録する画像をユーザの指示に従って生成し、生成した画像をハガキに印刷する印刷処理をMFP10に実行させるプログラムである。なお、ハガキプログラム65は、携帯端末50にインストールされた他のプログラムを通じて、MFP10に印刷処理を実行させてもよい。
また、メモリ62は、不図示のテンプレート画像データを記憶することができる。テンプレート画像データは、ハガキの通信面に印刷されるテンプレート画像を示す。本実施形態では、年賀状の通信面に印刷されるテンプレート画像の例を説明するが、テンプレート画像の用途はこれに限定されず、例えば、暑中見舞い、クリスマスカード等にも応用することができる。
また、メモリ62は、図2(A)に示される標準スタンプリストと、図2(B)に示されるカスタムスタンプリストとを記憶することができる。標準スタンプリスト及びカスタムスタンプリストは、スタンプデータを含む。スタンプデータは、テンプレート画像に合成することが可能なスタンプを示すイメージデータの一例である。すなわち、スタンプデータは、例えば、JPEG形式、BMP形式、或いはTIFF形式のデータである。スタンプは、例えば、干支や絵文字等を示す画像である。スタンプは、テンプレート画像上に合成可能な画像であって、テンプレート画像より画像サイズが小さい。
スタンプは、例えば、図柄スタンプと、文字スタンプとに大別される。図柄スタンプは、例えば図9のスタンプアイコン142、143、144、148で示されるように、干支の図柄、或いは携帯端末50に搭載されたカメラで撮影した写真の一部分を示す画像である。文字スタンプは、例えば図9のスタンプアイコン145、149で示されるように、文字を含む文字画像の一例である。
また、スタンプは、例えば、ハガキプログラム65の開発者によって提供された標準スタンプと、ユーザの指示に従ってハガキプログラム65が生成したカスタムスタンプとを含む。標準スタンプは、第1グループに属するスタンプの一例である。カスタムスタンプは、第1グループと異なる第2グループに属するスタンプの一例である。但し、第1グループ及び第2グループの具体例は、これに限定されない。
標準スタンプリストは、1以上の標準スタンプレコードを含む。標準スタンプレコードは、標準スタンプを示す標準スタンプデータと、対応する標準スタンプの属性を示す属性情報とを含む。属性情報には、例えば、対応する標準スタンプが図柄スタンプであることを示す“図柄”、或いは対応する標準スタンプが文字スタンプであることを示す“文字”が設定される。標準スタンプリストは、例えば、ハガキプログラム65のインストール時に、メモリ62に記憶される。
カスタムスタンプリストは、1以上のカスタムスタンプレコードを含む。カスタムスタンプレコードは、カスタムスタンプを示すカスタムスタンプデータ、フォントデータ、サイズ情報、方向情報、及びタイプ情報の一部及び全部を含む。より詳細には、図柄スタンプを示す図柄スタンプレコードは、図2(B)の1行目のように、図柄スタンプを示すカスタムスタンプデータのみを含む。一方、文字スタンプを示す文字スタンプレコードは、図2(B)の2行目のように、文字スタンプを示すカスタムスタンプデータと、フォントデータと、サイズ情報と、方向情報と、タイプ情報とを含む。カスタムスタンプレコードは、後述する図柄スタンプ生成処理及び文字スタンプ生成処理において、ハガキプログラム65によってカスタムスタンプリストに登録される。
フォントデータは、対応する文字スタンプに含まれる文字の文字コードを示すデータである。より詳細には、フォントデータは、ASCIIやUnicode等のコードセットのうち、ユーザが入力した文字に割り当てられたビット列である。サイズ情報は、フォントデータで示される文字のサイズを示す数値である。方向情報は、フォントデータで示される文字の配列方向(例えば、“縦書き”、“横書き”)を示す。タイプ情報は、フォントデータで示される文字のフォントタイプ(例えば、“ゴシック体”、“明朝体”、“ポップ体”等)を示す。
さらに図示は省略するが、メモリ62は、写真データを記憶していてもよい。写真データは、例えば、不図示のカメラによって撮影されたものであってもよいし、通信I/F55を通じて外部装置から受信したものであってもよい。なお、テンプレート画像データ、標準スタンプリスト、カスタムスタンプリスト、及び写真データの一部及び全部は、メモリ62に代えて、インターネット上の不図示のサーバに記憶されていてもよい。
[印刷システム100の動作]
図3〜図7を参照して、本実施形態に係る印刷システム100の動作を説明する。
[通信面編集処理]
まず、携帯端末50のハガキプログラム65は、図8(A)に示されるテンプレート選択画面をディスプレイ53に表示させる(S11)。テンプレート選択画面は、複数のテンプレートアイコン111、112、113、114を含む。テンプレートアイコン111〜114は、メモリ62に記憶された複数のテンプレート画像データの1つに対応する。そして、ハガキプログラム65は、テンプレート選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S12)。S12、及び後述するS14、S22、S24、S29、S42、S44、S52、S54〜S57、S71〜S73の処理は、受付処理の一例である。
次に、ハガキプログラム65は、例えばテンプレートアイコン113の指定を入力I/F54を通じて受け付けたことに応じて(S12:Yes)、指定されたテンプレートアイコン113に対応付けられたテンプレート画像データを、メモリ62から読み出す。次に、ハガキプログラム65は、図8(B)に示されるテンプレート編集画面を、テンプレート選択画面に代えてディスプレイ53に表示させる(S13)。そして、ハガキプログラム65は、テンプレート編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S14)。
テンプレート編集画面は、テンプレート画像121と、フォントアイコン123と、スタンプアイコン124と、[保存]アイコン125と、[印刷]アイコン126とを含む。テンプレート画像121は、読み出したテンプレート画像データで示される画像である。フォントアイコン123は、テンプレート画像121に含まれる文字のフォント(例えば、ゴシック体、明朝体等)を切り替える指示に対応する。スタンプアイコン124は、テンプレート画像121に合成するスタンプを選択する指示に対応する。[保存]アイコン125は、編集されたテンプレート画像データをメモリ62に記憶させる指示に対応する。[印刷]アイコン126は、編集されたテンプレート画像121をハガキの通信面に印刷する指示に対応する。
次に、ハガキプログラム65は、スタンプアイコン124の指定を入力I/F54を通じて受け付けたことに応じて(S14:スタンプ)、スタンプ合成処理を実行する(S15)。スタンプ合成処理は、テンプレート画像121にスタンプを合成する処理である。図4を参照して、スタンプ合成処理の詳細を説明する。
[スタンプ合成処理]
まず、ハガキプログラム65は、図9(A)に示されるスタンプ選択画面130を、テンプレート編集画面に代えてディスプレイ53に表示させる(S21)。本実施形態に係るスタンプ選択画面130は、後述するスタンプ編集画面に重ねて表示されるポップアップウィンドウである。すなわち、スタンプ選択画面130は、スタンプ編集画面より画面サイズが小さい。そして、ハガキプログラム65は、スタンプ選択画面130に対するユーザ操作を、入力I/F54を通じて受け付ける(S22&S24)。スタンプ選択画面130は第2画面の一例であり、S21の処理は第2表示処理の一例である。
スタンプ選択画面130は、切替タブ131、132を含む。切替タブ131は、標準スタンプレコードに対応するスタンプアイコン142、143、144、145を表示させる指示に対応する第1切替オブジェクトの一例である。切替タブ132は、カスタムスタンプレコードに対応するスタンプアイコン148、149を表示させる指示に対応する第2切替オブジェクトの一例である。また、切替タブ131には“標準”の文字列が記述されており、切替タブ132には“カスタム”の文字列が記述されている。
切替タブ131、132は、一方が選択状態となり、他方が非選択状態となる。選択状態の切替タブ131と、非選択状態の切替タブ132とは、表示態様が異なる。例えば図9(A)に示されるように、選択状態の切替タブ131は、背景色がグレーで、文字色が白である。一方、非選択状態の切替タブ132は、背景色が白で、文字色がグレーである。但し、選択状態及び非選択状態の表示態様の差は、前述の例に限定されず、例えば、選択状態の時の文字サイズを、非選択状態の時の文字サイズより大きくしてもよい。
ハガキプログラム65は、非選択状態の切替タブ131の指定を入力I/F54を通じて受け付けたことに応じて(S22:Yes)、ディスプレイ53に表示させるスタンプ選択画面130を、図9(B)から図9(A)に切り替える(S23→S21)。この処理は、第1切替処理の一例である。また、ハガキプログラム65は、非選択状態の切替タブ132の指定を入力I/F54を通じて受け付けたことに応じて(S22:Yes)、ディスプレイ53に表示させるスタンプ選択画面130を、図9(A)から図9(B)に切り替える(S23→S21)。この処理は、第2切替処理の一例である。
図9(A)に示されるスタンプ選択画面130は、選択状態の切替タブ131と、非選択状態の切替タブ132と、編集オブジェクトの一例である[ソート]アイコン141と、スタンプオブジェクトの一例であるスタンプアイコン142〜145とを含む。[ソート]アイコン141は、スタンプアイコン142〜145の並び順を変更する指示に対応する。スタンプアイコン142〜145は、図2(A)に示される標準スタンプレコードの1つに対応する。
[ソート]アイコン141及びスタンプアイコン142〜145は、スタンプ選択画面130に一覧表示されている。より詳細には、各アイコン141〜145は、スタンプ選択画面130上において、所定の配列順で等間隔に配列されている。スタンプ選択画面上におけるスタンプの配列順とは、例えば、各行の左端から右端に向かう向きである。すなわち、図9(A)において、左上の[ソート]アイコン141が配列順の先頭であり、右下のスタンプアイコン145が配列順の末尾となる。
また、[ソート]アイコン141は、スタンプ選択画面130上において、スタンプアイコン142〜145より配列順の前方の固定位置に配置されている。一方、スタンプアイコン142〜145は、[ソート]アイコン141より配列順の後方において、任意の順序で配列される。さらに、切替タブ131、132は、表示中のスタンプアイコン142〜145より配列順の後方の固定位置に配置されている。なお、「表示中のスタンプアイコン」とは、例えば、スタンプ選択画面130にスクロールバーが表示されている場合において、現在のスクロールバーの位置で表示されるスタンプアイコンを指す。
さらに、[ソート]アイコン141は、選択状態の切替タブ131と共通の表示態様で表示される。すなわち、スタンプ選択画面130の一端(例えば、上端)と他端(例えば、下端)とには、共通の表示態様の[ソート]アイコン141と切替タブ131とが表示される。換言すれば、共通の表示態様の[ソート]アイコン141と切替タブ131とは、スタンプ選択画面130上において、最も離れた位置に配置される。
ハガキプログラム65は、[ソート]アイコン141の指定を入力I/F54を通じて受け付けたことに応じて、スタンプ選択画面130上において、スタンプアイコン142〜145の並び順を変更する。ハガキプログラム65は、例えば、属性情報“図柄”のスタンプアイコン142〜144と、属性情報“文字”のスタンプアイコン145との位置を入れ替えてもよい。この処理は、スタンプ選択画面130のレイアウトを編集する編集処理の一例である。
図9(B)に示されるスタンプ選択画面130は、非選択状態の切替タブ131と、選択状態の切替タブ132と、編集オブジェクトの一例である[図柄スタンプ]アイコン146と、編集オブジェクトの一例である[文字スタンプ]アイコン147と、スタンプオブジェクトの一例であるスタンプアイコン148、149とを含む。[図柄スタンプ]アイコン146は、新たに生成した図柄スタンプに対応するスタンプアイコンをスタンプ選択画面130に追加する指示に対応する。[文字スタンプ]アイコン147は、新たに生成した文字スタンプに対応するスタンプアイコンをスタンプ選択画面130に追加する指示に対応する。スタンプアイコン148は、149は、図2(B)に示されるカスタムスタンプレコードの1つに対応する。
[図柄スタンプ]アイコン146、[文字スタンプ]アイコン147、及びスタンプアイコン148、149は、スタンプ選択画面130に一覧表示されている。より詳細には、各アイコン146〜149は、スタンプ選択画面130上において、所定の配列順で等間隔に配列されている。また、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147は、スタンプ選択画面130上において、スタンプアイコン148、149より配列順の前方の固定位置に配置されている。一方、スタンプアイコン148、149は、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147より配列順の後方において、任意の順序で配列される。さらに、切替タブ131、132は、表示中のスタンプアイコン148、149より配列順の後方の固定位置に配置されている。
さらに、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147は、選択状態の切替タブ132と共通の表示態様で表示される。すなわち、スタンプ選択画面130の一端(例えば、上端)と他端(例えば、下端)とには、共通の表示態様の[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147と、切替タブ132とが表示される。換言すれば、共通の表示態様の[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147と、切替タブ132とは、スタンプ選択画面130上において、最も離れた位置に配置される。
次に、ハガキプログラム65は、図9(B)の[図柄スタンプ]アイコン146の指定を入力I/F54を通じて受け付けたことに応じて(S24:図柄)、図柄スタンプ生成処理を実行する(S25)。図柄スタンプ生成処理は、ユーザの指示に従って図柄スタンプを生成する処理である。図5を参照して、図柄スタンプ生成処理の詳細を説明する。
[図柄スタンプ生成処理]
まず、ハガキプログラム65は、図10(A)に示される写真選択画面を、スタンプ編集画面及びスタンプ選択画面130に代えてディスプレイ53に表示させる(S41)。写真選択画面は、写真アイコン151、152、153、154、155、156を含む。写真アイコン151〜156は、例えば、メモリ62に記憶された写真データの1つに対応する。そして、ハガキプログラム65は、写真選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S42)。
次に、ハガキプログラム65は、例えば写真アイコン155の指定を入力I/F54を通じて受け付けたことに応じて(S42:Yes)、図10(B)に示される写真編集画面を、写真選択画面に代えてディスプレイ53に表示させる(S43)。写真編集画面は、編集対象画像161と、領域指示枠162と、輪郭アイコン163、164、165、166と、[完了]アイコン167とを含む。そして、ハガキプログラム65は、写真編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S44)。
編集対象画像161は、指定された写真アイコン155に対応する写真データで示される画像である。領域指示枠162は、編集対象画像161のうち、図柄スタンプとしてクロッピングする領域を示す画像である。輪郭アイコン163〜166は、領域指示枠162の輪郭形状(例えば、真円、楕円、三角形、四角形)に対応する。[完了]アイコン167は、編集対象画像161のうち、領域指示枠162で囲まれた領域の画像で図柄スタンプを生成する指示に対応する。
次に、ハガキプログラム65は、例えば輪郭アイコン163の指定を入力I/F54を通じて受け付けたことに応じて(S44:輪郭アイコン)、領域指示枠162の輪郭形状を四角形から真円に変更する(S45)。また、ハガキプログラム65は、領域指示枠162の位置に対するドラッグ操作を入力I/F54を通じて受け付けたことに応じて(S44:領域指示枠)、編集対象画像161上における領域指示枠162の位置を、入力媒体の移動に追従して移動させる(S46)。
さらに、ハガキプログラム65は、[完了]アイコン167の指定を入力I/F54を通じて受け付けたことに応じて(S44:完了)、編集対象画像161のうち、領域指示枠162で囲まれた領域の画像を、図柄スタンプとしてクロッピングする。そして、ハガキプログラム65は、クロッピングした図柄スタンプを示すカスタムスタンプデータを含む図柄スタンプレコードを、カスタムスタンプリストに登録する(S47)。そして図4に戻って、ハガキプログラム65は、登録した図柄スタンプレコードで示される図柄スタンプを用いて、後述するS27以降の処理を実行する。
また、ハガキプログラム65は、図9(B)の[文字スタンプ]アイコン147の指定を入力I/F54を通じて受け付けたことに応じて(S24:文字)、文字スタンプ生成処理を実行する(S26)。文字スタンプ生成処理は、ユーザの指示に従って文字スタンプを生成する処理である。図6を参照して、文字スタンプ生成処理の詳細を説明する。
[文字スタンプ生成処理]
まず、ハガキプログラム65は、図11に示される文字編集画面を、ディスプレイ53に表示させる(S51)。文字編集画面は、テキストボックス171と、[クリア]アイコン172と、[完了]アイコン173と、切替タブ174、175とを含む。そして、ハガキプログラム65は、文字編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S52、S54〜S57)。S52、S54〜S57の処理は、入力受付処理の一例である。
ハガキプログラム65は、非選択状態の切替タブ174の指定を入力I/F54を通じて受け付けたことに応じて(S52:Yes)、図11(A)に示されるように、文字の入力を受け付けるソフトウェアキーボード176を文字選択画面に表示させる(S53)。また、ハガキプログラム65は、非選択状態の切替タブ175の指定を入力I/F54を通じて受け付けたことに応じて(S52:Yes)、図11(B)に示されるように、サイズ情報、方向情報、及びタイプ情報に対応するプルダウンメニュー177、178、179を文字選択画面に表示させる(S53)。
プルダウンメニュー177は、サイズ情報として指定可能な複数の離散的な数値(例えば、30px(ピクセルの略)、35px、40px、45px、50px)のうちの1つを、ユーザに指定させるためのオブジェクトである。プルダウンメニュー178は、方向情報として指定可能な設定値(例えば、“横書き”、“縦書き”)のうちの1つを、ユーザに指定させるためのオブジェクトである。プルダウンメニュー179は、タイプ情報として指定可能な設定値(例えば、“ゴシック体”、“明朝体”、“ポップ体”)のうちの1つを、ユーザに指定させるためのオブジェクトである。また、プルダウンメニュー177〜179には、指定された設定値が表示される。設定値が変更される前のプルダウンメニュー177〜179には、デフォルト値“50”、“横書き”、“ゴシック体”が表示される。
ハガキプログラム65は、ソフトウェアキーボード176を通じた文字“よろしく”の入力を受け付けたことに応じて(S54:Yes)、入力された文字を示すフォントデータをメモリ62に一時記憶させると共に、入力された文字をテキストボックス171に表示させる(S58)。また、ハガキプログラム65は、サイズ情報の設定値として“40px”を指定するユーザ操作をプルダウンメニュー177を通じて受け付けたことに応じて(S55:Yes)、指定された設定値“40px”をメモリ62に一時記憶させると共に、対応するプルダウンメニュー177に表示させる(S59)。
また、ハガキプログラム65は、方向情報及びタイプ情報の設定値を指定するユーザ操作をプルダウンメニュー178、179を通じて受け付けたことに応じて(S56/S57:Yes)、指定された設定値をメモリ62に一時記憶させると共に、対応するプルダウンメニュー178、179に表示させる(S60/S61)。一方、サイズ情報、方向情報、及びタイプ情報の設定値がデフォルト値から変更されない場合には、デフォルト値がメモリ62に一時記憶されている。
また、ハガキプログラム65は、[クリア]アイコン172の指定を入力I/F54を通じて受け付けたことに応じて、メモリ62に一時記憶させたフォントデータを削除すると共に、テキストボックス171に表示された文字を非表示にする。さらに、ハガキプログラム65は、[完了]アイコン173の指定を入力I/F54を通じて受け付けたことに応じて(S57:No)、文字スタンプレコードをカスタムスタンプリストに登録する(S62)。
より詳細には、ハガキプログラム65は、メモリ62に一時記憶させたフォントデータ“よろしく”、サイズ情報“40px”、方向情報“横書き”、及びタイプ情報“ポップ体”から、文字スタンプを示すカスタムスタンプデータを生成する。すなわち、ここで生成される文字スタンプは、入力された文字“よろしく”を、指定されたフォントサイズ“40px”及びフォントタイプ“ポップ体”に従って成形し、且つ指定された方向“横書き”に配列した画像である。この処理は、第1生成処理の一例である。
次に、ハガキプログラム65は、生成したカスタムスタンプデータと、メモリ62に一時記憶させたフォントデータ、サイズ情報、方向情報、及びタイプ情報とを含む文字スタンプレコードを、カスタムスタンプリストに登録する。この処理は、記憶処理の一例である。そして図4に戻って、ハガキプログラム65は、登録した文字スタンプレコードで示される文字スタンプを用いて、後述するS27以降の処理を実行する。
また、ハガキプログラム65は、S47、S62でカスタムスタンプレコードを新たに登録した場合において、次にスタンプ選択画面130を表示する際に、当該カスタムスタンプレコードに対応するスタンプアイコンをスタンプ選択画面130に含める。すなわち、[図柄スタンプ]アイコン146或いは[文字スタンプ]アイコン147が指定されたことに応じて、次回に表示されるスタンプ選択画面130のレイアウトが変更される。この処理は、編集処理の一例である。
なお、ハガキプログラム65は、例えば図13(B)に示されるように、S62で新たに登録したカスタムスタンプレコードに対応するスタンプアイコン190を、[文字スタンプ]アイコン147の右隣に配置し、スタンプアイコン148、149の位置を配列順の後方に繰り下げる。一方、新たなスタンプアイコンが追加されても、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147の表示位置は変更されない。すなわち、ハガキプログラム65は、新たなスタンプアイコン190を、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147より配列順の後方で、且つ既存のスタンプアイコン148、149より配列順の前方に配置する。
さらに、ハガキプログラム65は、例えば、スタンプ選択画面130のスタンプアイコン142の指定を入力I/F54を通じて受け付けたことに応じて(S24:スタンプ)、指定されたスタンプアイコン142に対応するスタンプを用いて、後述するS27以降の処理を実行する。以下、図6を参照して説明した文字スタンプ“よろしく”を具体例として、S27以降の処理を説明する。
まず、ハガキプログラム65は、S62で生成したカスタムスタンプデータで示される文字スタンプ181を、テンプレート画像121上の所定の位置に合成する(S27)。次に、ハガキプログラム65は、図12(A)に示されるスタンプ編集画面を、ディスプレイ53に表示させる(S28)。そして、ハガキプログラム65は、スタンプ編集画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S29)。S27の処理は合成処理の一例であり、S28の処理は表示処理及び第1表示処理の一例である。
スタンプ編集画面は、文字スタンプ181が合成されたテンプレート画像121と、[スタンプ追加]アイコン186と、[決定]アイコン187とを含む第1画面の一例である。[スタンプ追加]アイコン186は、テンプレート画像121に合成するスタンプを追加する指示に対応する追加指示オブジェクトの一例である。[決定]アイコン187は、スタンプ合成処理を終了する指示に対応する。また、文字スタンプ181を合成した直後のスタンプ編集画面において、文字スタンプ181は指定状態となっている。
「指定状態のスタンプ」とは、当該スタンプが後述するスタンプ編集処理の対象であることを指す。一方、「非指定状態のスタンプ」とは、当該スタンプがスタンプ編集処理の対象でないことを示す。そして、ハガキプログラム65は、指定状態の文字スタンプ181と異なる位置がタップされたことに応じて、文字スタンプ181を指定状態から非指定状態に切り替える。また、ハガキプログラム65は、非指定状態の文字スタンプ181の位置がタップされたことに応じて、文字スタンプ181を非指定状態から指定状態に切り替える。
指定状態の文字スタンプ181には、図12(A)に示されるように、カスタムアイコン182と、編集アイコン183、184、185とが付加される。一方、非指定状態の文字スタンプ181には、アイコン182〜185が付加されない。カスタムアイコン182は、カスタムスタンプを編集する指示に対応する。すなわち、標準スタンプを指定状態にしても、カスタムアイコン182は付加されない。編集アイコン183は、文字スタンプ181を削除する指示に対応する。編集アイコン184は、文字スタンプ181を拡大或いは縮小させる指示に対応する。編集アイコン185は、文字スタンプ181を回転させる指示に対応する。
次に、ハガキプログラム65は、文字スタンプ181の編集を指示するユーザ操作を入力I/F54を通じて受け付けたことに応じて(S29:スタンプ)、スタンプ編集処理を実行する(S30)。スタンプ編集処理は、指定状態のスタンプをユーザの指示に従って編集する処理である。図7を参照して、スタンプ編集処理の詳細を説明する。
[スタンプ編集処理]
まず、ハガキプログラム65は、カスタムアイコン182の指定を入力I/F54を通じて受け付けたことに応じて(S71:Yes)、指定状態のカスタムスタンプが図柄スタンプか文字スタンプかを判断する(S74)。そして、ハガキプログラム65は、指定状態のカスタムスタンプが文字スタンプ181だと判断したことに応じて(S74:文字)、文字スタンプ編集処理を実行する(S76)。
文字スタンプ編集処理の処理内容は、図6に示される文字スタンプ生成処理と同様である。但し、文字スタンプ編集処理では、処理の開始時点で既に、対応する文字スタンプレコードに含まれる情報がテキストボックス171及びプルダウンメニュー177〜179に表示されている点で、文字スタンプ生成処理と相違する。また、後述するように、編集アイコン184によって文字スタンプ181のサイズが変更されている場合、プルダウンメニュー177に表示される数値と、文字スタンプ181に含まれる文字の実際のサイズとが異なる場合がある。
そして、ハガキプログラム65は、文字編集画面に対するユーザ操作を入力I/F54を通じて受け付けたことに応じて(S52、S54〜S57)、対応する処理(S58〜S61)を実行する。これらの処理は既に説明したので、説明を省略する。文字スタンプ編集処理において、プルダウンメニュー177を通じてサイズ情報の変更を受け付ける処理は、第2サイズ受付処理の一例である。
次に、ハガキプログラム65は、[完了]アイコン173の指定を入力I/F54を通じて受け付けたことに応じて(S57:No)、S58〜S61でメモリ62一時記憶させた情報に基づいて、カスタムスタンプデータを新たに生成する。この処理は、第3生成処理の一例である。そして、生成したカスタムスタンプデータと、S58〜S61でメモリ62に一時記憶させた情報とを含む文字スタンプレコードで、カスタムスタンプリストに既に登録されている文字スタンプレコードを更新する(S62)。すなわち、文字スタンプ編集処理では、S54〜S57で変更された情報に基づいて、文字スタンプレコードが更新される。この処理は、第2更新処理の一例である。
例えば、ハガキプログラム65は、プルダウンメニュー177を通じてサイズ情報が“40px”から“45px”に変更されたことに応じて、フォントサイズ“45px”の文字“よろしく”を表す文字スタンプのカスタムスタンプデータを、フォントデータから生成する。そして、ハガキプログラム65は、新たに生成したカスタムスタンプデータと、変更後のサイズ情報“45px”とで、文字スタンプレコードを更新する。また、ハガキプログラム65は、図12(B)に示されるように、拡大後の文字スタンプ181が合成されたテンプレート画像121を含むスタンプ編集画面を、ディスプレイ53に表示させる(S28)。
一方、ハガキプログラム65は、指定状態のカスタムスタンプが図柄スタンプだと判断したことに応じて(S74:図柄)、図柄スタンプ編集処理を実行する(S75)。図柄スタンプ編集処理は、図5のS43〜S47の処理に相当する。すなわち、図柄スタンプ編集処理では、S41、S42の処理がスキップされ、当該図柄スタンプの元になった写真データで示される編集対象画像を含む写真編集画面が表示される。
また、ハガキプログラム65は、文字スタンプ181の位置に対するドラッグ操作を入力I/F54を通じて受け付けたことに応じて(S72:Yes)、テンプレート画像121上における入力媒体の移動に追従して文字スタンプ181を移動させ(S77)、新たな位置に文字スタンプ181が合成されたテンプレート画像121を含むスタンプ編集画面を、ディスプレイ53に表示させる(S28)。
また、ハガキプログラム65は、編集アイコン184の位置に対するドラッグ操作を入力I/F54を通じて受け付けたことに応じて(S73:拡縮)、入力媒体の移動に応じた倍率で文字スタンプ181のサイズを変更する(S78)。そして、ハガキプログラム65は、図12(B)に示されるように、サイズ変更後の文字スタンプ181が合成されたテンプレート画像121を含むスタンプ編集画面を、ディスプレイ53に表示させる(S28)。
より詳細には、ハガキプログラム65は、編集アイコン184の位置にタッチされた入力媒体の移動方向及び移動量を、タッチセンサを通じて検出する。そして、ハガキプログラム65は、文字スタンプ181の中心に近づく向きの入力媒体の移動量を、文字スタンプ181の面積の縮小量として受け付ける。一方、ハガキプログラム65は、文字スタンプ181の中心から遠ざかる向きの入力媒体の移動量と、文字スタンプ181の面積の拡大量として受け付ける。この処理は、第1サイズ受付処理の一例である。
換言すれば、編集アイコン184の位置に対するドラッグ操作は、文字スタンプ181の左上隅と右下隅とを結ぶ対角線の長さを変更するユーザ操作である。そして、ハガキプログラム65は、変更後の対角線を含む長方形の面積を、文字スタンプ181の新たな面積として取得する。すなわち、文字スタンプ181の面積の変化量(縮小量/拡大量)は、入力媒体の移動量が大きいほど大きく、入力媒体の移動量が小さいほど小さくなる。
但し、ドラッグ操作によって指定可能な面積の変化量には、上限値及び下限値が設定されていてもよい。例えば、文字スタンプ181に対応する文字スタンプレコードのサイズ情報が“40px”である場合に、0.875(=35px/40px)倍を下限値とし、1.125(=45px/40px)倍を上限値としてもよい。すなわち、ハガキプログラム65は、S73において、プルダウンメニュー177を通じて指定可能な2つの数値で示されるサイズの差の範囲内で、文字スタンプ181の面積の変化量をユーザに指定させてもよい。
次に、ハガキプログラム65は、文字スタンプ181に対応する文字スタンプレコードのカスタムスタンプデータの画素を増減することによって、新たなカスタムスタンプデータを生成する。すなわち、文字スタンプ181の拡大が指示された場合、周知の拡大アルゴリズムによって、既存のカスタムスタンプデータに画素が補間される。一方、文字スタンプ181の縮小が指示された場合、周知の縮小アルゴリズムによって、既存のカスタムスタンプデータから画素が間引かれる。これにより、文字スタンプ181の面積が拡大或いは縮小されると共に、文字スタンプ181に含まれる文字のサイズも拡大或いは縮小される。この処理は、第2生成処理の一例である。
そして、ハガキプログラム65は、生成したカスタムスタンプデータで文字スタンプレコードを更新する。一方、S78では、文字スタンプレコードに含まれるフォントデータ、サイズ情報、方向情報、タイプ情報は、更新されない。すなわち、ハガキプログラム65は、文字スタンプレコードに含まれるデータ及び情報のうち、カスタムスタンプデータのみを更新する。換言すれば、編集アイコン184を通じた文字スタンプ181の拡縮によって、文字スタンプレコードのサイズ情報で示されるフォントサイズと、文字スタンプ181に含まれる文字の実際のサイズとが異なる場合がある。この処理は、第1更新処理の一例である。
また、ハガキプログラム65は、編集アイコン185の位置に対するドラッグ操作を入力I/F54を通じて受け付けたことに応じて(S73:その他)、テンプレート画像121上で文字スタンプ181を回転させて(S79)、回転後の文字スタンプ181が合成されたテンプレート画像121を含むスタンプ編集画面を、ディスプレイ53に表示させる(S28)。また、ハガキプログラム65は、編集アイコン183の位置のタップ操作を入力I/F54を通じて受け付けたことに応じて(S73:その他)、テンプレート画像121上から文字スタンプ181を削除して(S79)、文字スタンプ181が削除されたスタンプ編集画面を、ディスプレイ53に表示させる(S28)。
また、ハガキプログラム65は、スタンプ編集画面の[スタンプ追加]アイコン186の指定を入力I/F54を通じて受け付けたことに応じて(S29:スタンプ追加)、S21以降の処理を実行する。さらに、ハガキプログラム65は、[決定]アイコン187の指定を入力I/F54を通じて受け付けたことに応じて(S29:決定)、図13(A)に示されるテンプレート編集画面を、スタンプ編集画面に代えてディスプレイ53に表示させる(S13)。
また、ハガキプログラム65は、テンプレート編集画面のフォントアイコン123の指定を入力I/F54を通じて受け付けたことに応じて、テンプレート画像121に含まれる文字列のフォントを切り替える。また、ハガキプログラム65は、テンプレート編集画面の[保存]アイコン125の指定を入力I/F54を通じて受け付けたことに応じて、編集されたテンプレート画像データを、メモリ62に記憶させる。
さらに、ハガキプログラム65は、テンプレート編集画面の[印刷]アイコン126の指定を入力I/F54を通じて受け付けたことに応じて(S14:印刷)、通信I/F55を通じてMFP10に印刷指示情報を送信する(S16)。印刷指示情報は、編集されたテンプレート画像121をハガキの通信面に印刷する印刷動作をMFP10に実行させるための情報である。印刷指示情報は、編集されたテンプレート画像121を示すテンプレート画像データを含む。S16の処理は、印刷指示処理の一例である。
一方、図示は省略するが、MFP10の装置プログラム35は、通信I/F25を通じて携帯端末50から印刷指示情報を受信する。そして、装置プログラム35は、受信した印刷指示情報に従った印刷動作をプリンタ11に実行させる。すなわち、プリンタ11は、印刷指示情報に含まれるテンプレート画像データで示されるテンプレート画像121を、ハガキの通信面に印刷する。
[本実施形態の作用効果]
上記の実施形態によれば、例えば図9(B)に示されるように、[図柄スタンプ]アイコン146、[文字スタンプ]アイコン147、及びスタンプアイコン148、149を一覧表示することによって、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147を表示する領域を、スタンプ選択画面130内に独立して設ける必要がなくなる。そして、画面サイズの小さいポップアップウィンドウにおいて、このようなレイアウトを採用することによって、テンプレート画像121を編集するための様々な選択肢を、適切なレイアウトで表示させることができる。
また、上記の実施形態によれば、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147を配列順の先頭に配置することによって、一覧表示される複数のアイコンの中に紛れ込むことがない。これにより、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147の位置をユーザに容易に認識させることができる。
また、上記の実施形態によれば、例えば図13(B)に示されるように、新たに追加されたスタンプアイコン190が、スタンプ選択画面130に表示される複数のスタンプアイコン190、148、149の先頭に表示される。換言すれば、新たに追加されたスタンプアイコン190が、当該スタンプアイコンを追加するためにタップした[文字スタンプ]アイコン147の近くに表示される。これにより、新たなスタンプアイコン190の位置をユーザに容易に認識させることができる。
さらに、上記の実施形態によれば、[図柄スタンプ]アイコン146及び[文字スタンプ]アイコン147と、選択状態の切替タブ132とを、スタンプ選択画面130上で最も離れた位置に、共通の表示態様で表示させる。これにより、スタンプ選択画面130のレイアウトが統一されると共に、各オブジェクトの位置をユーザに容易に認識させることができる。
また、上記の実施形態によれば、文字スタンプ181を生成する際にS55で文字の大まかなサイズを数値として入力させ、テンプレート画像121に合成された文字スタンプ181のサイズを編集アイコン184を通じて微調整させることができる。そして、S78では、指定された面積の変化量に合わせてカスタムスタンプデータの画素を増減させるので、変更後の面積に納まる文字のサイズを再計算するのと比較して、少ないリソースで文字スタンプ181を拡大或いは縮小することができる。
但し、S78で生成した文字スタンプ181は、S73で指定された面積の変化量が大きいほど画質が劣化する傾向がある。そこで、S73で指定可能な変化量に上限値及び下限値を設定することにより、文字スタンプ181の画質の劣化を抑制することができる。一方、テンプレート画像121に合成された文字スタンプ181の大幅なサイズ変更は、カスタムアイコン182を通じて実現される。
すなわち、ドラッグ操作のような直感的な操作で文字スタンプ181の面積の変化量を指定する方法は、テンプレート画像121上における文字スタンプ181の面積を微調整する場合に適している。一方、文字のサイズを数値として指定する方法は、文字スタンプ181のサイズを大幅に変更する場合、或いは複数の文字スタンプのサイズを統一する場合に適している。このように、文字スタンプ181のサイズを変更する複数の方法を提供することによって、ハガキの通信面に記録する画像を柔軟に編集することができる。
また、上記の実施形態のMFP10及び携帯端末50において、メモリ32、62に記憶された各種プログラムがCPU31、61によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10及び携帯端末50として実現できるだけでなく、MFP10及び携帯端末50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワーク101を通じてMFP10及び携帯端末50に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク101を通じて配信されてもよい。