com.j_phone.io
インタフェース CameraConnection

すべてのスーパーインタフェース:
javax.microedition.io.Connection, OpticalDeviceConnection

public interface CameraConnection
extends OpticalDeviceConnection

カメラ機能を実現するためのインタフェースです。このインタフェースを実装したオブジェクトは、スキームに "camera:" を指定してConnector.open()メソッドを呼び出すことで取得できます。このインタフェースの機能について、以下に説明します。


概要

静止画の撮影において、このインタフェースが実現する機能を以下に示します。

このインタフェースでは、以下の撮影用パラメータを指定できます。

フレーム画像

フレーム画像の概念を図1に示します。

camera_frame_1_jp26.gif

図1. フレーム画像の概念

フレーム画像とは、撮影した画像を修飾する画像の事です。 Javaアプリケーションから、撮影時に使用するフレーム画像を指定できます。撮影画像とフレーム画像の合成は、ネイティブシステム内で行われ、取得する撮影画像は合成済みのものが返されます。

静止画の撮影の基本的な処理シーケンス

静止画の撮影の基本処理シーケンスを以下に示します。

  1. Connector.open()メソッドにて、スキームに "camera:" を 指定して呼び出すことにより、CameraConnection インタフェースを実装したオブジェクトを取得します。
  2. CameraConnection インタフェースのcountAvailablePictureSizes() メソッドにて、ネイティブシステムでサポートされている画像サイズの種類の数を取得します。その後で、0から(countAvailablePictureSizes() の戻り値-1)までの値をインデックスとして、実際の画像サイズを、CameraConnection インタフェースの getPictureWidth() および getPictureHeight() にて取得します。
  3. CameraConnection インタフェースのisSupported() メソッドにて、ネイティブシステムでサポートされている画像の保存形式を取得します。
  4. 撮影画像のサイズ、保存形式、画像品質、フレーム画像を指定します。それぞれのパラメータを設定するメソッドを以下に示します。

  5. CameraConnection インタフェースのcapture() メソッドを呼び出して、撮影します。
  6. CameraConnection インタフェースのgetFileName() メソッドを呼び出すことにより、撮影データのファイル名を取得します。
  7. closeメソッドを呼び出すことで、カメラ機能を終了します。

導入されたバージョン:
JSCL 1.2

フィールドの概要
static int CHKTYPE_FORMAT_JPEG
          isSupported() でチェックする内容が、JPEG形式での保存のサポートの有無であることを示します。
static int CHKTYPE_FORMAT_PNG
          isSupported() でチェックする内容が、PNG形式での保存をサポートの有無であることを示します。
static int FORMAT_JPEG
          画像の保存形式がJPEG形式であることを示します。
static int FORMAT_PNG
          画像の保存形式がPNG形式であることを示します。
static int QUALITY_FINE
          画像品質がファインであることを示します。
static int QUALITY_NORMAL
          画像品質がノーマルであることを示します。
static int QUALITY_SUPERFINE
          画像品質がスーパーファインであることを示します。
 
メソッドの概要
 void capture()
          ネイティブシステム内のカメラアプリケーションを起動して、静止画を撮影します。
 int countAvailablePictureSizes()
          ネイティブシステムでサポートされている画像サイズの種類の数を取得します。
 java.lang.String getFileName()
          撮影した画像のファイル名を取得します。
 int getPictureHeight(int sizeId)
          インデックスに対応する画像サイズの高さを取得します。
 int getPictureWidth(int sizeId)
          インデックスに対応する画像サイズの幅を取得します。
 boolean isSupported(int chkType)
          カメラアプリケーションの特定の機能のサポートの有無を、ネイティブシステムから取得します。
 void setPictureFormat(int format)
          画像の保存形式を設定します。
 void setPictureFrame(byte[] bytes)
          撮影で使用するフレーム画像データをネイティブシステムに渡します。
 void setPictureFrame(java.lang.String frameFileName)
          撮影で使用するフレーム画像のファイルを設定します。
 void setPictureQuality(int quality)
          撮影する画像の品質を設定します。
 void setPictureSize(int sizeId)
          撮影する画像のサイズを設定します。
 
インタフェース javax.microedition.io.Connection から継承したメソッド
close
 

フィールドの詳細

CHKTYPE_FORMAT_JPEG

public static final int CHKTYPE_FORMAT_JPEG
isSupported() でチェックする内容が、JPEG形式での保存のサポートの有無であることを示します。

CHKTYPE_FORMAT_PNG

public static final int CHKTYPE_FORMAT_PNG
isSupported() でチェックする内容が、PNG形式での保存をサポートの有無であることを示します。

QUALITY_NORMAL

public static final int QUALITY_NORMAL
画像品質がノーマルであることを示します。

QUALITY_FINE

public static final int QUALITY_FINE
画像品質がファインであることを示します。

QUALITY_SUPERFINE

public static final int QUALITY_SUPERFINE
画像品質がスーパーファインであることを示します。

FORMAT_JPEG

public static final int FORMAT_JPEG
画像の保存形式がJPEG形式であることを示します。

FORMAT_PNG

public static final int FORMAT_PNG
画像の保存形式がPNG形式であることを示します。
メソッドの詳細

isSupported

public boolean isSupported(int chkType)
                    throws java.lang.IllegalArgumentException
カメラアプリケーションの特定の機能のサポートの有無を、ネイティブシステムから取得します。
定義:
インタフェース OpticalDeviceConnection 内の isSupported
パラメータ:
chkType - サポートの有無を取得する項目。CHKTYPE_FORMAT_JPEGCHKTYPE_FORMAT_PNGのどちらかを指定する。
戻り値:
引数chkType で、指定された形式をネイティブシステムがサポートしている場合は true、サポートしていない場合は false
例外:
java.lang.IllegalArgumentException - 引数 chkTypeCHKTYPE_FORMAT_JPEG またはCHKTYPE_FORMAT_PNG 以外の場合に発生する

countAvailablePictureSizes

public int countAvailablePictureSizes()
ネイティブシステムでサポートされている画像サイズの種類の数を取得します。
戻り値:
ネイティブシステムでサポートされている画像サイズの種類の数。0 からこのメソッドの戻り値 - 1までの値が画像サイズに対応するインデックスとなる。

getPictureWidth

public int getPictureWidth(int sizeId)
                    throws java.lang.IllegalArgumentException
インデックスに対応する画像サイズの幅を取得します。
パラメータ:
sizeId - 画像サイズを指すインデックス。0 から countAvailablePictureSizes()の戻り値 - 1 までの値を指定する。
戻り値:
引数sizeIdに指定されたインデックスに対応する画像サイズの幅(単位はピクセル)。sizeIdに 0 が指定された場合はネイティブシステムの実画面の幅、1 が指定された場合は写メール向けの幅を返す。
例外:
java.lang.IllegalArgumentException - 引数 sizeId が、0 から countAvailablePictureSizes()の戻り値 - 1 以外の場合に発生する
関連項目:
countAvailablePictureSizes()

getPictureHeight

public int getPictureHeight(int sizeId)
                     throws java.lang.IllegalArgumentException
インデックスに対応する画像サイズの高さを取得します。
パラメータ:
sizeId - 画像サイズを指すインデックス。0 から countAvailablePictureSizes()の戻り値 - 1 までの値を指定する。
戻り値:
引数sizeIdに指定されたインデックスに対応する画像サイズの高さ(単位はピクセル)。sizeIdに 0 が指定された場合はネイティブシステムの実画面の高さ、1 が指定された場合は写メール向けの高さを返す。
例外:
java.lang.IllegalArgumentException - 引数 sizeId が、0 から countAvailablePictureSizes()の戻り値 - 1 以外の場合に発生する
関連項目:
countAvailablePictureSizes()

setPictureSize

public void setPictureSize(int sizeId)
                    throws java.lang.IllegalArgumentException
撮影する画像のサイズを設定します。
パラメータ:
sizeId - 画像サイズを指すインデックス。0 から countAvailablePictureSizes()の戻り値 - 1 までの値で指定する。
例外:
java.lang.IllegalArgumentException - 引数 sizeId が、0 から countAvailablePictureSizes()の戻り値 - 1 以外の場合に発生する

setPictureQuality

public void setPictureQuality(int quality)
                       throws java.lang.IllegalArgumentException
撮影する画像の品質を設定します。
パラメータ:
quality - 画像の品質。QUALITY_NORMALQUALITY_FINE、またはQUALITY_SUPERFINEのどれかを指定する。
例外:
java.lang.IllegalArgumentException - 引数 quality が、QUALITY_NORMALQUALITY_FINE、またはQUALITY_SUPERFINE以外の場合に発生する

setPictureFormat

public void setPictureFormat(int format)
                      throws java.lang.IllegalArgumentException
画像の保存形式を設定します。
パラメータ:
format - 画像の保存形式。FORMAT_JPEGFORMAT_PNGのどちらかを指定する。
例外:
java.lang.IllegalArgumentException - 引数 format が、ネイティブシステムがサポートしていない保存形式の場合、または不正な値の場合に発生する

setPictureFrame

public void setPictureFrame(java.lang.String frameFileName)
撮影で使用するフレーム画像のファイルを設定します。 引数frameFileNameには、フレーム画像ファイルを StorageConnectionインタフェースで定義されているパス名と同じ形式で、 ルートから指定してください。
パラメータ:
frameFileName - フレーム画像ファイルのパス名。フレーム画像を使用しないときは、 null を指定する。

setPictureFrame

public void setPictureFrame(byte[] bytes)
撮影で使用するフレーム画像データをネイティブシステムに渡します。
パラメータ:
bytes - フレーム画像データを格納しているバイト配列。フレーム画像を使用しないときは、 null を指定する。

capture

public void capture()
             throws java.io.IOException
ネイティブシステム内のカメラアプリケーションを起動して、静止画を撮影します。 このメソッドを呼び出すと、ネイティブシステム内のカメラアプリケーションが起動されます。カメラアプリケーションが終了すると、getFileName()により、撮影した画像のファイル名を取得できます。

ネイティブシステム内のカメラアプリケーションが起動している間、すべてのJavaスレッドはブロックされます。

このメソッドを呼び出す前に、静止画撮影について、以下に示すパラメータ が指定可能です。カッコ内はそのパラメータを設定するメソッドです。

これらのパラメータを指定しないでこのメソッドを呼び出した場合は、以下 に示す値が撮影に適用されます。

Javaアプリケーションが指定した画像サイズおよび画像保存形式と、画像品質との組み合わせにネイティブシステムが対応していない場合は、撮影時にネイティブシステムの対応している画像品質に自動的に合わせられます(例:スーパーファインからファイン)。

定義:
インタフェース OpticalDeviceConnection 内の capture
例外:
java.io.IOException - ネイティブシステムでサポートしていない画像サイズ、画像保存形式、画像品質が指定された場合、または撮影時にエラーが発生した場合に発生する。
関連項目:
setPictureSize(), setPictureQuality(), setPictureFormat(), setPictureFrame()

getFileName

public java.lang.String getFileName()
撮影した画像のファイル名を取得します。
戻り値:
撮影した画像のファイル名。 連続撮影した場合は、capture()の呼び出し後、ネイティブシステムのカメラアプリケーションで最初に撮影した画像のファイル名となる。 ユーザーによるキャンセルが発生した場合、または、 着信および通話後にカメラアプリケーションを再起動することができなかった場合は、null を返す。