私の j2me アプリケーションは、写真を撮り、少し編集して、どこかに保存する (またはサーバーに送信する) 必要があります。カメラは画像のバイトを jpg 形式で返しますが、( を使用して) そこから Image オブジェクトを作成した後、それImage.createImage()
を jpg に戻すことができませんでした。
j2me 用の jpeg エンコーダはありますか?
j2se で書かれたものを見つけましたが、j2se 固有のクラスを使用しています。
私の j2me アプリケーションは、写真を撮り、少し編集して、どこかに保存する (またはサーバーに送信する) 必要があります。カメラは画像のバイトを jpg 形式で返しますが、( を使用して) そこから Image オブジェクトを作成した後、それImage.createImage()
を jpg に戻すことができませんでした。
j2me 用の jpeg エンコーダはありますか?
j2se で書かれたものを見つけましたが、j2se 固有のクラスを使用しています。
これはできる!独自の API やライブラリがなくても。これは、電話機が JSR 234 をサポートし、それを介して JPEG ファイルを処理できる場合に実現できます。これをして:
//Create MediaProcessor for raw Image
MediaProcessor mediaProc = GlobalManager.createMediaProcessor("image/raw");
//Get control over the format
ImageFormatControl formatControl = (ImageFormatControl)
mediaProc.getControl("javax.microedition.amms.control.ImageFormatControl");
//Set necessary format
formatControl.setFormat("image/jpeg");
次に、 input Image
、 output stream を設定し、メディア プロセッサを起動します。出来上がり!画像を JPEG で保存しました。
ところで、JSR 234 は多くのデバイスでサポートされていないため、Sun の JIMI イメージ ライブラリを使用して、JPEG エンコード部分を j2me に移植します。正常に動作し、メモリをあまり使用しません。
これは純粋に実装に依存します。一部のデバイスでは、jpg ファイルを使用して Image オブジェクトを作成できますが、他のデバイスでは作成できません。ただし、Sun の仕様によると、デバイスは png をサポートする必要がありますが、それ以外は OEM メーカーの裁量に任されています。