私の 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 メーカーの裁量に任されています。