com.j_phone.util
クラス ImageEncoder

java.lang.Object
  |
  +--com.j_phone.util.ImageEncoder

public class ImageEncoder
extends java.lang.Object

Imageオブジェクト上の画像データを、PNGフォーマットまたはJPEGフォーマットにエンコードするためのクラスです。

このクラスでは、mutableなImageオブジェクトだけを操作の対象としています。

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

フィールドの概要
static int FORMAT_JPEG
          createEncoder() で設定する画像エンコード形式で、JPEGを示します。
static int FORMAT_PNG
          createEncoder() で設定する画像エンコード形式で、PNGを示します。
static int QUALITY_FINE
          setJpegOption() で設定する圧縮レベルで、画質優先のJPEG圧縮であることを示します。
static int QUALITY_NORMAL
          setJpegOption() で設定する圧縮レベルで、データサイズ優先のJPEG圧縮であることを示します。
static int SIZE_12KB
          setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約12KB(スーパーメール添付用サイズ)であることを示します。
static int SIZE_30KB
          setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約30KBであることを示します。
static int SIZE_6KB
          setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約6KB(ロングメール添付用サイズ)であることを示します。
 
メソッドの概要
static ImageEncoder createEncoder(int format)
          ImageEncoderのインスタンスを取得します。
 byte[] encodeOffscreen(javax.microedition.lcdui.Image src, int x, int y, int width, int height)
          Imageオブジェクト上の画像データをエンコードします。
 void setJpegOption(int option)
          JPEGフォーマットへエンコードする場合の圧縮レベルを設定します。
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FORMAT_PNG

public static final int FORMAT_PNG
createEncoder() で設定する画像エンコード形式で、PNGを示します。圧縮率はネイティブシステム依存です。

FORMAT_JPEG

public static final int FORMAT_JPEG
createEncoder() で設定する画像エンコード形式で、JPEGを示します。

SIZE_6KB

public static final int SIZE_6KB
setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約6KB(ロングメール添付用サイズ)であることを示します。

SIZE_12KB

public static final int SIZE_12KB
setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約12KB(スーパーメール添付用サイズ)であることを示します。

SIZE_30KB

public static final int SIZE_30KB
setJpegOption() で設定する圧縮レベルで、JPEG圧縮後のサイズが約30KBであることを示します。

QUALITY_FINE

public static final int QUALITY_FINE
setJpegOption() で設定する圧縮レベルで、画質優先のJPEG圧縮であることを示します。実際の圧縮率はネイティブシステムに依存します。

QUALITY_NORMAL

public static final int QUALITY_NORMAL
setJpegOption() で設定する圧縮レベルで、データサイズ優先のJPEG圧縮であることを示します。実際の圧縮率はネイティブシステムに依存します。
メソッドの詳細

createEncoder

public static ImageEncoder createEncoder(int format)
ImageEncoderのインスタンスを取得します。
パラメータ:
format - 画像フォーマット。FORMAT_PNG または FORMAT_JPEG を指定する。
戻り値:
ImageEncoderのインスタンス
例外:
java.lang.IllegalArgumentException - 引数 format が、FORMAT_PNG または FORMAT_JPEG 以外の場合に発生する

setJpegOption

public void setJpegOption(int option)
JPEGフォーマットへエンコードする場合の圧縮レベルを設定します。 このメソッドによる圧縮レベルの設定は、createEncoder() の引数formatFORMAT_JPEGを指定した場合にだけ有効です。
パラメータ:
option - 圧縮レベルとして以下のどれかを指定する
例外:
java.lang.IllegalArgumentException - 引数 option が、SIZE_6KBSIZE_12KBSIZE_30KBQUALITY_FINE 、または QUALITY_NORMAL 以外の場合に発生する

encodeOffscreen

public byte[] encodeOffscreen(javax.microedition.lcdui.Image src,
                              int x,
                              int y,
                              int width,
                              int height)
Imageオブジェクト上の画像データをエンコードします。
パラメータ:
src - Imageオブジェクト
x - エンコードする領域の左上のx座標(単位はピクセル)
y - エンコードする領域の左上のy座標(単位はピクセル)
width - エンコードする領域の幅(単位はピクセル)
height - エンコードする領域の高さ(単位はピクセル)
戻り値:
エンコード済みのデータのバイト配列
例外:
NullPointerException - 引数src が null の場合に発生する
java.lang.IllegalArgumentException - 以下の場合に発生する
  • 引数 x または y が負の値の場合
  • 引数 width または height が 0 以下の場合
  • 引数 xywidth 、および heightに指定された領域が、引数 src に指定されたImageオブジェクト外の領域を含んでいる場合
  • 引数 src に指定されたImageオブジェクトがImmutableの場合に発生する
java.lang.RuntimeException - 以下の場合に発生する
  • setJpegOption() で圧縮レベルを SIZE_6KB(初期値)、 SIZE_12KB、または SIZE_30KB に設定したJPEG のエンコードで、 エンコード後のサイズが指定値を超えた場合
  • PNG エンコード、または setJpegOption() で圧縮レベルを QUALITY_NORMAL または QUALITY_FINE に設定した JPEG のエンコードで、 エンコード後のサイズが機器のファイル保存サイズの上限を超えた場合