パッケージ com.kddi.graphics

画像データに関する機能を提供します。

参照:
          説明

インタフェースの概要
ExtensionGraphics 標準の描画機能を拡張するためのインタフェースです。
 

クラスの概要
ImageEncoder イメージを JPEG 形式でエンコードして byte 型配列のデータに変換します。
 

パッケージ com.kddi.graphics の説明

画像データに関する機能を提供します。

描画機能の拡張

データフォルダに保存されている画像データやカメラ撮影した画像データなどは MIDP の javax.microedition.lcdui.Image クラス、javax.microedition.lcdui.Graphics クラスなどの機能を使用して加工編集することができます。

このパッケージの ExtensionGraphics インタフェースでは、Graphics クラスで提供されている描画機能を拡張した機能を提供します。

画像データのエンコード

データフォルダに保存されている画像データやカメラ撮影した画像データなどは、通常はエンコードされたデータです。このエンコードされた画像データから Image オブジェクトを作成すると画像データはデコードされます。そのため、編集後のデータを保存する際に再度エンコードする必要があります。

このパッケージの ImageEncoder クラスでは、画像データをエンコードする機能を提供します。

画像データ取得から保存までの手順

画像データの取得から加工編集を経て保存するまでの操作手順の概略を以下で説明します。

  1. 画像データの取得

    以下に示す方法によって画像データを取得します。

  2. immutable な Image オブジェクトの作成

    画像データを加工編集するには mutable な Image オブジェクトを作成する必要があります。byte 型配列の画像データから直接 mutable な Image オブジェクトを作成できないので、まず immutable な Image オブジェクトを作成します。createImage(byte[] imageData, int imageOffset, int imageLength) メソッドを使用します。

  3. mutable な Image オブジェクトの作成

    2.で作成した immutable な Image オブジェクトから画像イメージのサイズを取得できます。このサイズを元に createImage(int width, int height) メソッドで mutable な Image オブジェクトを新規に作成します。

    作成した mutable な Image オブジェクトにはまだ画像データが設定されていません。getGraphics() メソッドにより Graphics オブジェクトを取得し、drawImage() に immutable な Image を指定して mutable な Image に画像データを書き込みます。

  4. 画像データの加工編集

    3.で作成した mutable な Image オブジェクトに対して画像の加工や編集を行います。

  5. エンコード

    このパッケージが提供する ImageEncoder クラスの encode() で加工編集した後の画像データをエンコードして byte型配列 を生成します。

  6. 保存

    HTTP通信機能を利用してサーバに加工画像データを送信するなどができます。

カメラ撮影に関する詳細については CameraConnection クラスの説明を、撮影した画像データを取得する方法に関する詳細については com.kddi.camera パッケージの説明をそれぞれ参照してください。

データフォルダアクセスによる画像データの読み込み・書き込みに関する詳細については DataFolderConnection クラスの説明を参照してください。

画像データ取得から保存までの例

カメラを起動して撮影したフォト画像を取得し、加工、エンコードする例を以下に示します。


// 1. カメラ撮影したフォト画像データを取得する

  PhotoContent photo = null;
  try{
    // カメラを起動しフォト撮影をする
    PhotoConnection conn = ( PhotoConnection ) Connector.open("photo:");
    photo = ( PhotoContent ) conn.capture(true);
    conn.close();
  }
  catch(IOException e){
    // 例外発生時のエラー処理
  }
  // フォト画像データの取得
  byte[] data = photo.getData();


// 2. immutableなImageオブジェクトの作成

  Image immutable = Image.createImage( data, 0, data.length );


// 3. mutableなImageオブジェクトの作成
 
  // 空の mutable な Image オブジェクトの作成
  int w = immutable.getWidth();
  int h = immutable.getHeight();
  Image mutable = Image.createImage( w, h );

  // mutable オブジェクトからGraphics オブジェクトを取得
  Gpahics g = mutable.getGraphics();

  // Graphics オブジェクトに immutable イメージのデータを描画
  g.drawImage( immutable );


// 4. 画像データの加工編集

  // Graphics クラスの機能を利用して画像データを加工する
  ...
 
  // ExtensionGraphics クラスの機能を利用して画像データを加工する
  ExtensionGraphics eg = (ExtensionGraphics) g;
  ...


// 5. エンコード

  // ImageEncoder オブジェクトの作成
  ImageEncoder ie = new ImageEncoder();

  // 画像のエンコード
  byte[] encodeData = ie.encode( mutable );

関連項目
javax.microedition.lcdui.Image,javax.microedition.lcdui.Graphics
カメラ制御 : PhotoConnection
カメラ撮影データ取得 : PhotoContent



Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.