|
||||||||
フレームあり フレームなし |
参照:
説明
インタフェースの概要 | |
ExtensionGraphics | 標準の描画機能を拡張するためのインタフェースです。 |
クラスの概要 | |
ImageEncoder | イメージを JPEG 形式でエンコードして byte 型配列のデータに変換します。 |
画像データに関する機能を提供します。
描画機能の拡張
データフォルダに保存されている画像データやカメラ撮影した画像データなどは MIDP の javax.microedition.lcdui.Image クラス、javax.microedition.lcdui.Graphics クラスなどの機能を使用して加工編集することができます。
このパッケージの ExtensionGraphics
インタフェースでは、Graphics クラスで提供されている描画機能を拡張した機能を提供します。
データフォルダに保存されている画像データやカメラ撮影した画像データなどは、通常はエンコードされたデータです。このエンコードされた画像データから Image オブジェクトを作成すると画像データはデコードされます。そのため、編集後のデータを保存する際に再度エンコードする必要があります。
このパッケージの ImageEncoder
クラスでは、画像データをエンコードする機能を提供します。
画像データの取得から加工編集を経て保存するまでの操作手順の概略を以下で説明します。
以下に示す方法によって画像データを取得します。
PhotoConnection
クラスの capture(true)
により、カメラを起動し、 PhotoContent
クラスの getData()
メソッドでフォト画像データを取得します。
画像データを加工編集するには mutable な Image オブジェクトを作成する必要があります。byte 型配列の画像データから直接 mutable な Image オブジェクトを作成できないので、まず immutable な Image オブジェクトを作成します。createImage(byte[] imageData, int imageOffset, int imageLength) メソッドを使用します。
2.で作成した immutable な Image オブジェクトから画像イメージのサイズを取得できます。このサイズを元に createImage(int width, int height) メソッドで mutable な Image オブジェクトを新規に作成します。
作成した mutable な Image オブジェクトにはまだ画像データが設定されていません。getGraphics() メソッドにより Graphics オブジェクトを取得し、drawImage() に immutable な Image を指定して mutable な Image に画像データを書き込みます。
3.で作成した mutable な Image オブジェクトに対して画像の加工や編集を行います。
このパッケージが提供する ImageEncoder
クラスの encode()
で加工編集した後の画像データをエンコードして byte型配列 を生成します。
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 );
PhotoConnection
PhotoContent
|
||||||||
フレームあり フレームなし |