(57)【要約】【課題】カメラデバイスの種類に関わりなく撮影ができ統一された形式で撮影された画像データを取り出すプログラムを作成することを可能とする仕組みを提供する。【解決手段】携帯電話機１０は、カメラデバイスを選択する手段と、選択されたカメラデバイスにより撮影された被写体を表す画像データを内部に保持するためのカメラデバイスに対応した属性を有するオブジェクトを生成する手段と、生成されたオブジェクトが有する属性を変更する手段と、被写体を撮影するためのプログラムを呼び出す手段と、呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、撮影された被写体を表す画像データをオブジェクト内に保持する手段と、保持された画像データを一定の形式で前記オブジェクトの外部に取り出す手段とを有する。【選択図】図３
2006129527.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮影するための複数のカメラデバイスと、
前記カメラデバイスを制御するためのカメラデバイス制御手段を有し、
前記カメラデバイス制御手段は、
前記複数のカメラデバイスのうちの何れかを選択する選択手段と、
前記選択手段により選択されたカメラデバイスにより撮影された被写体を表す画像データを内部に保持するための、前記カメラデバイスに対応した属性を有するオブジェクトを生成するカメラオブジェクト生成手段と、
前記カメラオブジェクト生成手段により生成されたオブジェクトが有する属性を変更する属性設定手段と、
前記被写体を撮影するためのプログラムを呼び出すカメラ機能呼出手段と、
前記カメラ機能呼出手段により呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、該撮影された被写体を表す画像データを前記カメラオブジェクト生成手段によって生成されたオブジェクト内に保持する画像保持手段と、
前記画像保持手段によって保持された画像データを一定の形式で前記オブジェクトの外部に取り出す画像加工手段と
を有することを特徴とする通信端末。
【請求項２】
コンピュータ装置を、
前記複数のカメラデバイスのうちの何れかを選択する選択手段と、
前記選択手段により選択されたカメラデバイスにより撮影された被写体を表す画像データを内部に保持するための、前記カメラデバイスに対応した属性を有するオブジェクトを生成するカメラオブジェクト生成手段と、
前記前記カメラオブジェクト生成手段により生成されたオブジェクトが有する属性を変更する属性設定手段と、
前記被写体を撮影するためのプログラムを呼び出すカメラ機能呼出手段と、
前記カメラ機能呼出手段により呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、該撮影された被写体を表す画像データを前記カメラオブジェクト生成手段によって生成されたオブジェクト内に保持する画像保持手段と、
前記画像保持手段によって保持された画像データを一定の形式で前記オブジェクトの外部に取り出す画像加工手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カメラを搭載した通信端末の技術に関する。
【背景技術】
【０００２】
近年、撮像素子を備えたデジタルカメラを搭載した携帯電話機の開発が進んでいる。このような携帯電話機においては、ＣＰＵから撮影指令が出力されると、デジタルカメラが撮影を行う仕組みとなっている（例えば、文献１参照）。この種の携帯電話機の不揮発性メモリにデジタルカメラの制御プログラムや、撮影により得られた画像データを加工したり操作したりするためのプログラムが記憶されている。これらのプログラムの内容やデジタルカメラの種類は、携帯電話機の製造者により独自に決定される。
このため、画像の撮影を制御したり、画像データを加工するためのアプリケーションプログラムの作成方法や、ユーザが画像を撮影したり加工を行うために携帯電話機を操作する方法は、携帯電話機やカメラの種類によって異なっていた。
【特許文献１】特開２００２−２１８０２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような事情のために、携帯電話機のユーザやアプリケーションプログラムの開発者は、カメラの種類によって異なった操作を行ったり、異なったアプリケーションプログラムを作成する必要があり、使い勝手や開発効率が悪くなっていた。
本発明は、以上説明した事情に鑑みてなされたものであり、カメラデバイスの種類に関わりなく撮影ができ統一された形式で撮影された画像データを取り出すプログラムを作成することを可能とする仕組みを提供することを目的としている。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、この発明は、被写体を撮影するための複数のカメラデバイスと、前記カメラデバイスを制御するためのカメラデバイス制御手段を有し、前記カメラデバイス制御手段は、前記複数のカメラデバイスうちの何れかを選択する選択手段と、前記選択手段により選択されたカメラデバイスにより撮影された被写体を表す画像データを内部に保持するための、前記カメラデバイスに対応した属性を有するオブジェクトを生成するカメラオブジェクト生成手段と、前記前記カメラオブジェクト生成手段により生成されたオブジェクトが有する属性を変更する属性設定手段と、前記被写体を撮影するためのプログラムを呼び出すカメラ機能呼出手段と、前記カメラ機能呼出手段により呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、該撮影された被写体を表す画像データを前記カメラオブジェクト生成手段によって生成されたオブジェクト内に保持する画像保持手段と、前記画像保持手段によって保持された画像データを一定の形式で前記オブジェクトの外部に取り出す画像加工手段とを有する通信端末を提供する。
【０００５】
また、この発明は、コンピュータ装置を、前記複数のカメラデバイスうちの何れかを選択する選択手段と、前記選択手段により選択されたカメラデバイスにより撮影された被写体を表す画像データを内部に保持するための、前記カメラデバイスに対応した属性を有するオブジェクトを生成するカメラオブジェクト生成手段と、前記前記カメラオブジェクト生成手段により生成されたオブジェクトが有する属性を変更する属性設定手段と、前記被写体を撮影するためのプログラムを呼び出すカメラ機能呼出手段と、前記カメラ機能呼出手段により呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、該撮影された被写体を表す画像データを前記カメラオブジェクト生成手段によって生成されたオブジェクト内に保持する画像保持手段と、前記画像保持手段によって保持された画像データを一定の形式で前記オブジェクトの外部に取り出す画像加工手段として機能させるためのプログラムを提供する。
【０００６】
この発明によれば、通信端末は、選択されたカメラデバイスに対応した属性を内包したオブジェクトを生成し、入力された属性を変更した後、前記被写体を撮影するためのプログラムを呼び出す。通信端末は、呼び出されたプログラムを実行することによって、前記カメラデバイスにより被写体を撮影し、該撮影された前記被写体を表す画像データを前記オブジェクト内に保持する。通信端末は、前記オブジェクト内に保持された画像データを一定の形式で前記カメラオブジェクトの外部に取り出す。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して本発明の実施形態について説明する。なお、各図において共通する部分には、同一の符号が付されている。
【０００８】
［１．構成］
図１は、本実施形態に係る携帯電話機１０のハードウェア構成を示すブロック図である。この図に示すように、携帯電話機１０は通常のコンピュータ装置と同様の構成を備えている。また、携帯電話機１０は、図示しない移動通信網の基地局との間で無線通信する無線通信部１０１と、ユーザに操作される複数のキーを有しキーの操作に応じた信号をＣＰＵ１０５に出力する操作入力部１０２と、移動通信網を介して通信する相手装置との間で呼の接続や切断を行う通話処理部１０３とを備えている。
【０００９】
また、図に示すように、カメラ制御部１０４は、被写体を撮影する一般的なカメラの機能を有している。カメラ制御部１０４は、２種類のカメラデバイスを有しており、１つは静止画像を撮影するカメラデバイス、他の１つは動画像を撮影するカメラデバイスである。各々のカメラデバイスは、レンズ、ＣＣＤ（Charge
Coupled Device）等の撮像素子、Ａ／Ｄ変換器、画像処理回路及びシャッタを有している。被写体の像はレンズを介して光学像に変換されて撮像素子面上に結像される。撮像素子は、光学像の光の強弱を電荷量に変換する。撮像素子から出力されるアナログビデオ信号は、Ａ／Ｄ変換器でデジタルビデオ信号の画像データに変換され、液晶表示部１０６に表示される。シャッタが押下されて撮影された画像データはＲＡＭ１０９に一時的に記憶される。画像処理回路は、画像データをＪＰＥＧ（Joint Photographic Experts Group）による圧縮伸長を行う。
【００１０】
記憶部１０７は、ＲＯＭ１０８と、ＲＡＭ１０９と、不揮発性メモリ１１０から構成されている。ＲＯＭ１０８には、携帯電話機１０用のオペレーティングシステム（以下「ＯＳ」という）やＪａｖａ（登録商標）仕様に準拠したバイトコードで構成されるアプリケーションプログラム（以下、「ＪａｖａＡＰ」という）を実行するＪａｖａ実行環境を構築するためのソフトウェアや、カメラ制御部１０４のカメラデバイスの種類を識別するためのカメラデバイスＩＤデータや、各々のカメラデバイスについての、デフォルトの属性値（画像データのサイズ、画質、連写モードの有効・無効、マイク音量、フレーム画像の有・無の値）や変更が可能な属性を表すデータが記憶されている。また、ＲＡＭ１０９は、ＣＰＵ１０５のワークエリアとして用いられ、ＣＰＵ１０５により実行される各種のプログラムやデータが一時的に記憶される。例えば、ＲＡＭ１０９には、後述するカメラオブジェクト内のデータが記憶される。
【００１１】
不揮発性メモリ１１０には、携帯電話機１０の製品出荷時点から携帯電話機１０の機能を実現するためのネイティブアプリケーションプログラムや各種データが記憶されている。ネイティブアプリケーションプログラムには、ＷＷＷ（World Wide Web）ブラウザの機能や、携帯電話機１０の通話機能や、カメラ制御部１０４によって被写体を撮影するカメラ機能を実現するためのプログラムが含まれている。
【００１２】
また、不揮発性メモリ１１０には、ＪＡＲストレージ１１０ａとスクラッチパッド１１０ｂとネイティブ領域１１０ｃとが設けられている。
ＪＡＲストレージ１１０ａには、ダウンロードされたＪＡＲ（Java Archive）ファイルが記憶される。ＪＡＲファイルは、ＪａｖａＡＰが内包された圧縮ファイルである。また、スクラッチパッド１１０ｂには、ＪＡＲファイルと共にダウンロードされたデータや、ＪａｖａＡＰを実行することによって作成されたデータが記憶される。ネイティブ領域１１０ｃには、電話番号、発着信履歴を表すデータや、撮影時に液晶表示部１０６に被写体の画像データと合成して表示するためのフレーム画像データが一時的に記憶される。
【００１３】
図２は、上記構成の携帯電話機１０の記憶部１０７に記憶されているソフトウェアによって実現されるＪａｖａＡＰの実行環境を説明するための図である。
【００１４】
ＫＶＭは、パーソナルコンピュータ装置に比較して記憶容量や処理速度、消費電力等に制約のある小型電子機器用に設計されたＪＶＭ（Java Virtual Machine）であって、ＪＡＲファイルに内包されたＪａｖａＡＰのバイトコードを解釈し実行することにより、携帯電話機１０にＪａｖａＡＰで表されるアプリケーションを実現させる。
【００１５】
ＫＶＭは、ＪａｖａＡＰに対して、携帯電話機１０のリソースにアクセスするためのＡＰＩを提供する。提供されるＡＰＩとしては、ＣＬＤＣ（Connected Limited Device Configuration）クラスライブラリを使用するためのＡＰＩと、ＣＬＤＣに準拠しないクラスライブラリを使用するためのアプリケーションＡＰＩとがある。ＫＶＭは、アプリケーションＡＰＩを介してリソースを使用することにより、ＪａｖａＡＰとネイティブアプリケーションプログラムとの動作連携、赤外線通信、ＨＴＴＰ（Hypertext Transfer Protocol）やＨＴＴＰＳ（Hypertext Transfer Protocol Security）によるネットワーク接続、ユーザインターフェースの提供、スクラッチパッド１１０ｂへのデータ保管等の処理を行うことができる。なお、ＫＶＭは他のネイティブアプリケーションプログラムと異なり、ＪａｖａＡＰの起動の指示がＯＳに入力されたときに起動される。
【００１６】
ＪＡＭは、携帯電話機１０にＪＡＲファイル及びＡＤＦ（Application Descriptor File）をダウンロードする。ＪＡＲファイルは、ＪＡＲストレージ１１０ａに記憶される。ＡＤＦには、対応するＪａｖａＡＰを起動するときのメインクラス名を指定したAppClassキーや、当該ＪａｖａＡＰに割り当てられたスクラッチパッド１１０ｂの容量を表すSpsize等の、ＪＡＲファイルに関する情報が記述されており、ＪＡＭは、このＡＤＦの記述内容を参照し、当該ＡＤＦに対応するＪａｖａＡＰの実行や当該ＡＤＦに対応するＪａｖａＡＰの挙動を管理する。ＪａｖａＡＰの実行の管理の具体的な内容としては、ＪａｖａＡＰの起動及びＪａｖａＡＰの強制終了が挙げられる。ＪａｖａＡＰの挙動の管理の具体的な内容としては、ＪａｖａＡＰとネイティブアプリケーションプログラムとの仲介、及び不揮発性メモリ１１０に記憶されたデータへのアクセス制限が挙げられる。
【００１７】
ネイティブアプリケーションプログラムとは、上述したように、携帯電話機１０の製品出荷時点から記憶されているプログラムである。ネイティブアプリケーションプログラムはＯＳが直接制御する。ネイティブアプリケーションプログラムには、カメラ機能を有するネイティブアプリケーションプログラムが含まれている。カメラ機能とは、カメラ制御部１０４によって被写体を撮影する機能である。
【００１８】
また、アプリケーションＡＰＩには、カメラＡＰＩが含まれている。ＫＶＭは、ＪａｖａＡＰを実行する過程で、カメラＡＰＩを介してカメラ機能を有するネイティブアプリケーションを呼び出し、カメラ制御部１０４によって静止画や動画を撮影する。
ここで、カメラＡＰＩには、データを操作するためのメソッドが定義されている。以下、当該メソッドの機能を説明する。
なお、実際には、ＣＰＵ１０５が、ＪＡＭ、ＫＶＭ、ＯＳを実現するためのソフトウェアを記憶部１０７より読み出して実行するのであって動作主体はＣＰＵ１０５であるが、以下の説明では、動作主体をＪＡＭ、ＫＶＭ、ＯＳとして説明する。
（１）カメラオブジェクト生成（getCamera）メソッド
撮影用に選択されたカメラデバイスを識別するためのカメラデバイスＩＤをパラメータとして、カメラデバイスに対応したカメラオブジェクトを生成する機能を有する。ＫＶＭは、カメラデバイスＩＤに対応した属性を表すデータをＲＯＭ１０８より読み出して、当該データを内包したカメラオブジェクトを生成する。生成されたカメラオブジェクト内には、撮影した画像データや、設定可能な属性や設定された属性を表すデータが保持される。
（２）属性設定可否判定（isAvailable）メソッド
選択されたカメラデバイスの属性（画像サイズ、画質、連写モード、マイク音量、フレーム画像）が設定可能か否かを判定する機能を有する。
（３）撮影可能静止画サイズ取得（getAvailablePictureSizes）メソッド
選択されたカメラデバイスで撮影可能な静止画の画像サイズを表すデータをカメラオブジェクトより取得する機能を有する。
（４）撮影可能動画サイズ取得（getAvailableMovieSizes）メソッド
選択されたカメラデバイスで撮影可能な動画の画像サイズを表すデータをカメラオブジェクトより取得する機能を有する。
（５）最大データサイズ取得（getMaxImageLength）メソッド
選択された動画撮影用のカメラデバイスで撮影可能な最大データサイズを表すデータを取得する機能を有する。
（６）使用可能フレームサイズ取得（getAvailableFrameSizes）メソッド
選択された静止画撮影用のカメラデバイスで使用可能なフレーム画像のサイズを表すデータをカメラオブジェクトより取得する機能を有する。
（７）属性設定（setAttribute）メソッド
選択されたカメラデバイスの属性を設定する機能を有する。選択されたカメラデバイスが静止画撮影用の場合、画質、連写モードの有効／無効、フレーム画像の有無を設定する機能を有する。選択されたカメラデバイスが動画撮影用の場合、画質、マイク音量を設定する機能を有する。
（８）画像サイズ設定（setImageSize）メソッド
選択されたカメラデバイスの属性のひとつである撮影する画像のサイズ（矩形領域の幅と高さ）を設定する機能を有する。画像サイズには、Ｌサイズ（288×352ｍｍ）とＳサイズ（120×120ｍｍ）が存在する。
（９）フレーム設定（setFrameImage）メソッド
選択されたカメラデバイスが静止画撮影用の場合、フレーム画像として使用する画像データを指定する機能を有する。フレーム画像としては、透明色のGIF（Graphics Interchange Format）を指定する。なお、設定するフレーム画像の画像サイズは、カメラ画像サイズと等しいものに限る。このメソッドを指定した結果撮影される画像は、フレーム画像なしで撮影した画像の上に、フレーム画像を描画した画像となる。
（１０）属性取得（getAttribute）メソッド
選択されたカメラデバイスに設定されている属性値を表すデータをカメラオブジェクトより取得する機能を有する。
（１１）静止画カメラ機能呼出（takePicture）メソッド
カメラ機能を有するネイティブアプリケーションプログラムを静止画撮影モードで呼び出す機能を有する。このメソッドが呼び出されると、ＪＡＭは、ＪａｖａＡＰの実行をサスペンドしカメラ機能を有するネイティブアプリケーションプログラムを起動する。ここで、サスペンドとは、実行中のＪａｖａＡＰを中止することである。ＪＡＭは、カメラ機能を有するネイティブアプリケーションプログラムの実行が終了すると、ＪａｖａＡＰの実行をレジュームしこのメソッドから復帰させる。ここで、レジュームとは、サスペンド中のＪａｖａＡＰの実行を再開することである。ユーザが撮影操作を行った後、撮影した画像を保存する操作を行った場合は、カメラオブジェクト内に画像データが保持される。ユーザが撮影操作を行わなかったり、あるいは撮影した画像を保存する操作を行わなかった場合は、カメラオブジェクト内に画像データは保持されない。カメラオブジェクト内に保持される画像データは、連写モードを無効にして撮影した場合は直近に撮影した１画像データのみである。一方、連写モードを有効にして撮影した場合は複数の画像データが保持される。なお、このメソッドを呼び出す前に保持していた画像データは、このメソッドを呼び出した時点で全て破棄される。
（１２）動画撮影（takeMovie）メソッド
カメラ機能を有するネイティブアプリケーションプログラムを動画撮影モードで呼び出す機能を有する。
（１３）入力ストリーム取得（getInputStream）メソッド
カメラオブジェクト内の指定されたインデックスに保持されている画像データをJPEGファイル形式のバイトイメージデータとして読み出すための入力ストリームを取得する機能を有する。
（１４）撮影画像数取得（getNumberOfImages）メソッド
カメラオブジェクト内に保持されている撮影した画像データの数を表すデータ取得する機能を有する。
（１５）画像データサイズ取得（getImageLength）メソッド
カメラオブジェクト内の指定されたインデックスに対応づけられて保持されている画像データのデータサイズを取得する機能を有する。
（１６）イメージオブジェクト取得（getImage）メソッド
カメラオブジェクト内の指定されたインデックスに対応した画像データを、当該画像データが内包されたイメージオブジェクトとして取得する機能を有する。
（１７）画像破棄（disposeImages）メソッド
カメラオブジェクト内の全ての画像データを破棄する機能を有する。カメラオブジェクトは画像データを保持していない状態となる。
以上が、カメラＡＰＩに用意されているメソッドである。
【００１９】
また、アプリケーションＡＰＩには、イメージオブジェクト取得（getImage）メソッドにより取得したイメージオブジェクトから、撮影した画像データを取り出し、以下の加工の仲介を行うＡＰＩが含まれている。
(1)画像データにカメラフレームなどの図形や文字を描画する
(2)画像データの切り出しを行う
(3)画像データを拡大や縮小、回転（90度、180度、270度）、反転（左右、上下）する
また、アプリケーションＡＰＩには、入力ストリーム取得（getInputStream）メソッドにより取得したJPEGファイル形式のバイトイメージデータをスクラッチパッド１１０ｂに保存する仲介を行うＡＰＩを有している。また、アプリケーションＡＰＩには、入力ストリーム取得（getInputStream）メソッドにより取得したJPEGファイル形式のバイトイメージデータをＨＴＴＰ（Hypertext Transfer Protocol）サーバ装置へ送信する仲介を行うＡＰＩが含まれている。
また、アプリケーションＡＰＩには、バイトイメージデータをイメージオブジェクトに変換する仲介を行うＡＰＩが含まれている。
また、アプリケーションＡＰＩには、ユーザが操作入力部１０２を操作して入力した内容を示すデータを実行中のＪａｖａＡＰに通知したり、データを液晶表示部１０６に表示する仲介を行うＡＰＩが含まれている。
また、アプリケーションＡＰＩには、実行中のＪａｖａＡＰの実行をサスペンドする仲介を行うＡＰＩと、サスペンドしているＪａｖａＡＰをレジュームする仲介を行うＡＰＩとを含んでいる。
【００２０】
［２．動作］
次に、上記構成において、上記カメラＡＰＩや上記説明したアプリケーションＡＰＩで定義されているメソッドが記述されたプログラムをコンパイルして、実行可能なバイトコードとしたＪａｖａＡＰ（以下、「カメラＡＰ」という）を、ＣＰＵ１０５が実行した場合の動作例を、図３を参照しながら説明する。
前提として、カメラＡＰが内包されたＪＡＲファイルと当該ファイルに対応したＡＤＦは、サーバ装置より携帯電話機１０にダウンロードされて不揮発性メモリ１１０に記憶されているものとする。
また、カメラ制御部１０４の、静止画を撮影するためのカメラデバイスには“１”のカメラデバイスＩＤが対応付けられ、動画を撮影するためのカメラデバイスには“２”のカメラデバイスＩＤが対応付けられて、ＲＯＭ１０８に記憶されているものとする。
また、静止画を撮影するためのカメラデバイスの属性（画質、連写モード、画像サイズ、フレーム）は全て設定可能であることを示すデータがＲＯＭ１０８に記憶されているものとする。また、静止画を撮影するためのカメラデバイスは、ＬサイズとＳサイズとの画像サイズが設定可能であることを表すデータがＲＯＭ１０８に記憶されているものとする。
また、撮影した画像データにフレーム画像として合成するためのＳサイズとＬサイズとの２種類の透過ＧＩＦが、スクラッチパッド１１０ｂに記憶されているものとする。
【００２１】
以下の説明では、ユーザが携帯電話機１０を用いて、連写モードを有効にして標準の画質でＳサイズの静止画を３枚撮影した後に、２番目に撮影した画像データをスクラッチパッド１１０ｂに保存する操作を行う動作例を説明する。
【００２２】
まず、ユーザは操作入力部１０２を操作して、カメラＡＰを用いて撮影を開始するための指示を行う。
これにより、ＪＡＭは、選択されたカメラＡＰに対応するＡＤＦを不揮発性メモリ１１０より読み出す。そして、ＪＡＭは、ＡＤＦのAppClassキーで示されるカメラＡＰのメインクラス名を指定してＫＶＭを起動する。ＫＶＭは、AppClassキーに対応するＪＡＲファイルを読み出し、当該ＪＡＲファイルに内包されるカメラＡＰを実行する。
まず、ＫＶＭは、どの種類のカメラデバイスを使用して撮影するのかをユーザに選択させるための画面を液晶表示部１０６に表示する。
ユーザは、操作入力部１０２を操作して、静止画を撮影するためのカメラデバイスＩＤ“１”を指定する。
これにより、ＫＶＭは、カメラオブジェクト生成（getCamera）メソッドによって、入力されたカメラデバイスＩＤ“１”に対応したデフォルトの属性を表すデータや設定可能な属性を表すデータをＲＯＭ１０８より読み出し、当該データを内包したカメラオブジェクトを生成する（ステップＳ１０１）。
次に、ユーザは、操作入力部１０２を操作して、どの属性が設定可能であるかを確認するための指示を行う。
これにより、ＫＶＭは、属性設定可否判定（isAvailable）メソッドを呼び出して、カメラオブジェクトより各種属性（画質、連写モード、画像サイズ、フレーム）が設定可能か否かを表すデータを取得する。そして、ＫＶＭは、全ての属性が設定可能であることを表すデータを取得し、当該データを液晶表示部１０６に表示する。
ユーザは、操作入力部１０２を操作することによって、画質“標準”、連写モード“有効”を設定する指示を行う。
これにより、ＫＶＭは、入力された属性値をパラメータとして、属性値設定（setAttribute）メソッドを呼び出してカメラオブジェクトに属性値を設定する（ステップＳ１０２）。
【００２３】
次に、ユーザは、操作入力部１０２を操作して、設定可能な画像サイズを表示するための指示を行う。
これにより、ＫＶＭは、撮影可能画像サイズ取得（getAvailablePictureSize）メソッドを呼び出し、撮影可能な静止画の画像サイズ“Ｓサイズ”と“Ｌサイズ”を表すデータをカメラオブジェクトより取得する。そして、ＫＶＭは、当該データを液晶表示部１０６に表示する。
ユーザは、操作入力部１０２を操作して、撮影する画像を“Ｓサイズ”に設定するための指示を行う。
これにより、ＫＶＭは、入力された画像サイズ“Ｓサイズ”を表すデータをパラメータとして画像サイズ設定（setImageSize）メソッドを呼び出し、カメラオブジェクトに画像サイズ“Ｓサイズ”を表すデータを設定する（ステップＳ１０３）。
【００２４】
次に、ユーザは、操作入力部１０２を操作して、設定可能なフレーム画像のサイズを確認するための指示を行う。
これにより、ＫＶＭは、使用可能フレームサイズ取得 (getAvailableFrameSizes)メソッドを呼び出し、使用可能なフレーム画像のサイズ（画像サイズと同じ“Ｓサイズ”）を表すデータをカメラオブジェクトより取得する。そして、ＫＶＭは、当該データを液晶表示部１０６に表示する。
次に、ユーザは、操作入力部１０２を操作して、スクラッチパッド１１０ｂに記憶されているＳサイズのフレーム画像を指定するための指示を行う。
これにより、ＫＶＭは、指定されたＳサイズのフレーム画像を識別するためのデータをパラメータとしてフレーム設定（setFrameImage）メソッドを呼び出して、撮影時に使用するＳサイズのフレーム画像を識別するためのデータをカメラオブジェクトに設定する（ステップＳ１０４）。
【００２５】
次に、ユーザは、操作入力部１０２を操作して、カメラ機能を起動するための指示を行う。
これにより、ＫＶＭは、静止画カメラ機能呼出（takePicture）メソッドを呼び出す（ステップＳ１０５）。これにより、ＪＡＭは、サスペンドの仲介を行うＡＰＩを介して、実行中のカメラＡＰをサスペンドする。そして、ＪＡＭは、カメラオブジェクト内に設定された属性をパラメータとしてカメラ機能を有するネイティブアプリケーションプログラムを起動するための指示を行う。これにより、ＯＳは、カメラ機能を有するネイティブアプリケーションプログラムを実行する。ＯＳは、ステップＳ１０４で指定されたＳサイズのフレーム画像データをスクラッチパッド１１０ｂより読み出し、ネイティブ領域１１０ｃに一時的に記憶する。そして、ＯＳは、カメラデバイスのレンズより入力される被写体を表す画像データとネイティブ領域１１０ｃに記憶されたフレーム画像データとを合成して、液晶表示部１０６に表示する。
ユーザは、液晶表示部１０６に表示されたフレーム画像付きの被写体を参照しながら、撮影指示の操作を行う。
これにより、ＯＳは、シャッタを切り静止画を撮影する。ＯＳは、撮影された画像データを一時的にＲＡＭ１０９に記憶する。
次に、ユーザは、操作入力部１０２を操作することにより、撮影した画像をカメラオブジェクト内に保持する旨の指示を行う。
これにより、ＯＳは、撮影された画像データをカメラオブジェクト内に保持する（ステップＳ１０６）。
ユーザは、上記と同様の方法で撮影指示の操作を繰り返し、全部で撮影指示の操作を３回行う。ここでは、連写モードが“有効”に設定されているために、ユーザが撮影指示の操作を行って画像データを保持する操作を行う毎に、複数の画像データが撮影順にインデックスと対応付けられてカメラオブジェクト内に保持される。
【００２６】
次に、ユーザは、操作入力部１０２を操作して、撮影終了の操作を行う。
これにより、ＯＳは、ネイティブ領域１１０ｃに記憶したフレーム画像データを削除する。そして、ＯＳは、カメラ機能を有するネイティブアプリケーションプログラムの実行を終了し、ＪＡＭに終了したことを通知する。
ＪＡＭは、当該通知を受け、レジュームを仲介するＡＰＩを介して、サスペンド状態のカメラＡＰをレジュームさせ静止画カメラ機能呼出（takePicture）メソッドから復帰させる。
【００２７】
次に、ユーザは、操作入力部１０２を操作して、撮影した画像の枚数を確認する旨の操作を行う。
これにより、ＫＶＭは、撮影画像数取得（getNumberOfImages）メソッドを呼び出して、カメラオブジェクト内に保持されている撮影された画像データの枚数“３枚”を表す撮影画像数データを取得する（ステップＳ１０７）。
そして、ＫＶＭは、取得した撮影画像数データを液晶表示部１０６に表示する。
ユーザは、３枚画像が撮影されたことを確認した後に、操作入力部１０２を操作して、２番目に撮影した画像のサイズを確認する旨の指示を行う。
これにより、ＫＶＭは、画像データサイズ取得（getImageLength）メソッドを呼び出して、カメラオブジェクト内の２番目のインデックスと対応づけられて保持されている画像のサイズ“Ｓサイズ”を表す画像サイズデータを取得する。そして、ＫＶＭは、取得した画像サイズデータを液晶表示部１０６に表示する。
【００２８】
次に、ユーザは、操作入力部１０２を操作して、２番目に撮影した画像データを携帯電話機１０のスクラッチパッド１１０ｂに保存する旨の操作を行う。
これにより、ＫＶＭは、２番目のインデックスをパラメータとした入力ストリーム取得（getInputStream）メソッドを呼び出して、カメラオブジェクト内に保持されている２番目のインデックスと対応づけらている画像データをＪＰＥＧファイル形式のバイトイメージデータとして取得する（ステップＳ１０８）。
【００２９】
そして、ＫＶＭは、データの保存を仲介するＡＰＩを介して、取得したデータをスクラッチパッド１１０ｂに記憶する。
あるいは、ユーザが、操作入力部１０２を操作して、画像を縮小する等の加工する指示を行った場合には、ＫＶＭは、イメージオブジェクト取得（getImage）メソッドを呼び出して画像データを内包したイメージオブジェクトを取得する。そして、ＫＶＭは、画像の加工を仲介するＡＰＩを介して、取得されたイメージオブジェクトから画像データを取り出し当該画像データを縮小加工する。
また、ユーザが、操作入力部１０２を操作して、画像データをサーバ装置に送信する旨の指示を行った場合には、ＫＶＭは、入力ストリーム取得（getInputStream）メソッドを呼び出して、カメラオブジェクトより画像データをＪＰＥＧファイル形式のバイトイメージデータとして取得する。そして、ＫＶＭは、当該データをサーバ装置へ送信する。
【００３０】
以上のように、カメラを識別するためのカメラデバイスＩＤを取得し、カメラデバイスＩＤに対応したカメラオブジェクトを生成することができるため、携帯電話機１０に搭載されたカメラデバイスの種類に関わりなく、同一のカメラＡＰを用いて撮影を行うことができる。
また、画像データのサイズ、画質、連写モード、マイク音量、フレーム画像の有無等の属性をカメラＡＰから設定することができるため、カメラデバイスのデフォルトの設定を任意に変更することが可能である。
また、カメラオブジェクト内に保持された画像データの枚数及びサイズを液晶表示部１０６に表示することができるため、ユーザは、あと何枚撮影可能かを確認することができ、また、画像データを加工したり送信したりするときに枚数やサイズが確認できるため、利便性が向上する。
また、撮影時に、フレーム画像を被写体と合成して液晶表示部１０６に表示することができるため、ユーザは、フレーム枠内に表示される被写体を確認しながら撮影を行うことができる。
また、連写モードを有効にした場合にはカメラオブジェクト内に画像データを複数枚保持することができる一方、連写モードを無効にした場合にはカメラオブジェクト内に画像データを１枚のみ保持することができるようにしたため、画像データの管理をカメラオブジェクトで行うことができる。
【００３１】
以上のように、カメラＡＰＩで定義されているメソッドの機能を用いることで、携帯電話機１０に搭載されたカメラデバイスの種類に応じてカメラオブジェクトを生成し、任意の属性を設定してからカメラ機能を有するネイティブアプリケーションプログラムを起動して撮影を行うことができる。
また、撮影した画像データを統一されたデータ形式で取り出すことが可能なため、ユーザやＪａｖａＡＰの開発者の利便性を向上させることができる。
このように、画像データや属性を内包したカメラオブジェクトを生成して、当該カメラオブジェクト内で画像データや属性を制御、管理するようにしたため、カメラデバイスの種類に関わらずカメラオブジェクト内で統一した形で画像データを管理することができる。
【００３２】
［３．変形例］
以上、本発明の実施形態について説明したが、本発明の一態様を例示したものに過ぎず、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。変形例としては、例えば、以下のようなものが考えられる。
【００３３】
（１）カメラ機能を有するネイティブアプリケーションプログラムを起動する前は、属性の変更を行ってもよい。
具体的には、ユーザは、操作入力部１０２を操作することによって、現在設定されている画質の属性を確認するための指示を行う。これにより、ＫＶＭは、属性取得（getAttribute）メソッドを呼び出して、カメラオブジェクトから現在設定されている画質の属性値“標準”を取得して、液晶表示部１０６に表示する。
次に、ユーザは、操作入力部１０２を操作して、画質“高”を設定する指示を行う。これにより、ＫＶＭは、画質の属性値“高”をパラメータとして、属性設定（setAttribute）メソッドを用いて属性を設定する。
このように、属性取得（getAttribute）メソッドを呼び出すことでカメラオブジェクトから現在設定されている属性を取得し、液晶表示部１０６に表示することができるため、ユーザは、現在設定されている属性を確かめた上で、属性を変更することができる。
【００３４】
（２）オブジェクト内の画像データが不要になった場合には、画像データを破棄する処理を行ってもよい。
具体的には、ユーザは、操作入力部１０２を操作して、カメラオブジェクト内に保持されている画像データを破棄する旨の指示を行う。
これにより、ＫＶＭは、画像破棄（disposeImages）メソッドを用いて、カメラオブジェクトが保持している画像データを全て破棄する。
【００３５】
（３）上記動作例は一例であり、処理の順序や属性の設定内容は上記動作例に限定されない。また、カメラＡＰＩに限らず、他のアプリケーションＡＰＩで定義されているメソッドと組み合わせて、多様なＪａｖａＡＰを作成することができる。
（４）上述した実施形態では、Javaプログラミング言語で作成されたＪａｖａＡＰを用いた場合について説明したが、プログラミング言語はJavaに限定されるものではない。しかしながら、カメラオブジェクトを生成する必要があることから、オブジェクト指向言語がより適しており、また、オブジェクト指向言語の中でも、携帯電話機１０にJava実行環境やダウンロードの仕組みが用意されているJavaプログラミング言語が適している。
（５）上記実施形態においては、カメラ機能を有するプログラムを呼び出したときには、ＪＡＭはカメラＡＰをサスペンドしたが、サスペンドしなくてもよい。しかしながら、サスペンドしない場合には、カメラ機能を有するネイティブアプリケーションプログラムとカメラＡＰとが使用するリソースが重複することによって競合が起きてしまったり、撮影中にカメラ機能を有するネイティブアプリケーションプログラムの実行を終了するためのボタンが押されたりすると不具合が生じるため、サスペンドした方が好ましい。
（６）設定・変更可能な「属性」は、上記実施形態に限定されるものではない。例えば、ズーム機能、撮影時の照明設定、画質補正（明るさ、色調補正、ホワイトバランス）、セピア撮影等の属性を設定・変更可能としてもよい。
（７）上記実施形態においては、カメラＡＰＩの機能を有するソフトウェアを、予め携帯電話機１０の記憶部１０７に記憶させておくようにしたが、移動通信網を介してダウンロードするようにしてもよいし、当該ソフトウェアを記録した記録媒体を携帯電話機１０に装着するようにしてもよい。
【００３６】
以上説明したように、本発明によれば、画像データや属性を内包したカメラオブジェクトを生成して、当該カメラオブジェクト内で画像データや属性を制御、管理するようにしたため、カメラデバイスの種類に影響されずに被写体を撮影したり撮影された画像データを統一したデータ形式で取り出すことができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態に係る携帯電話機のハードウェア構成を示すブロック図である。
【図２】同実施形態に係る携帯電話機のJava実行環境を説明するための図である。
【図３】同実施形態に係る携帯電話機において、ＣＰＵにより実行されるカメラＡＰの動作を説明するためのフローチャートである。
【符号の説明】
【００３８】
１０……携帯電話機、１０１……無線通信部、１０１ａ……アンテナ、１０２……操作入力部、１０３……通話処理部、１０４……カメラ制御部、１０５……ＣＰＵ、１０６……液晶表示部、１０７……記憶部、１０８……ＲＯＭ、１０９……ＲＡＭ、１１０……不揮発性メモリ、１１０ａ……ＪＡＲストレージ、１１０ｂ……スクラッチパッド、１１０ｃ……ネイティブ領域、１１１……バス。
【図１】
2006129527.tif 000003
【図２】
2006129527.tif 000004
【図３】
2006129527.tif 000005