2009-08-14 4 views
2

Приложение j2me должно сделать снимок, отредактировать его немного и сохранить его где-нибудь (или отправить на сервер). Камера возвращает мне байты изображения в формате jpg, но после того, как я создаю объект Image из него (с использованием Image.createImage()), я не смог упаковать его обратно в jpg.j2me - Как создать изображение в формате jpg?

Есть ли какие-либо jpeg-кодеры для j2me?
Я нашел один написанный в j2se, но он использует классы j2se-specific.

ответ

3

Кстати, поскольку JSR 234 не поддерживается на многих устройствах, я беру библиотеку изображений JIMI Sun и порт JPEG для кодирования j2me. Он отлично работает и не использует слишком много памяти.

+0

Я поделился ею с github: https://github.com/Pash237/j2me-JPEG-library –

+0

спасибо за обмен библиотекой @Pavel – Ajibola

0

Это зависит от реализации, некоторые устройства позволяют создавать объект изображения с использованием файла jpg, а другие - нет. Однако спецификация Sun говорит, что устройства должны поддерживать png, однако другие по усмотрению производителей OEM

+0

Последние устройства поддерживают _opening_ (декодирование) jpg-изображения. Но мне нужно сохранить свой пользовательский образ в jpeg. Может быть, есть какой-то специфический для поставщика API, который может _save_ (кодировать) в формате jpeg? –

3

Это можно сделать! Даже без каких-либо проприетарных 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"); 

Затем вы устанавливаете входной Image, выходной поток и запустить медиа-процессор. Вуаля! Вы сохранили изображение в формате JPEG.