2008-10-28 2 views
5

Я пытаюсь выполнить захват изображения на телефоне Nokia (N95) высокого уровня. Внутренняя камера телефона очень хорошая (4 мегапикселя), но в j2me мне кажется, что вы можете получить максимум 1360x1020 изображений. В основном я извлек из этого примера http://developers.sun.com/mobility/midp/articles/picture/Доступ к полной разрешающей способности камеры в j2me

То, что я сделал, начиналось с 640x480 и увеличивало ширину и высоту на 80 и 60 соответственно, пока не получилось. Строка кода:

JPG = mVideoControl.getSnapshot ("кодирование = & качество JPEG = 100 & ширина =" + ширина + "& высота =" + высота);

Таким образом, две проблемы: 1. Телефон выдает исключение при получении изображения размером более 1360x1020. 2. Изображения с более высоким разрешением выглядят как сглаженные версии меньших. Например. Когда я беру изображение 640x480 и увеличиваю его в Photoshop, я не могу сказать разницы между этим и тем, что предположительно 1360x1020.

Это ограничение j2me по телефону? Если кто-нибудь знает способ получить более высокое разрешение из приложения j2me и/или как получить доступ к встроенной камере из другого приложения?

ответ

6

Это explanation на Nokia форум может помочь вам.

В нем говорится, что «Максимальный размер изображения, который может быть захвачен, зависит от выбранного формата изображения, настроек кодирования и свободной памяти кучи».

и

«Это, таким образом, сильно посоветовал, что, по крайней мере в больших изображениях (больше, чем 1mpix) фиксируются в виде изображений JPEG и размера общего изображения (например, 1600x1200 для 2Mpix с так далее). Поддерживаемые общие размеры изображения зависят от версии продукта и платформы ».

Так что я предлагаю вам несколько попыток: 1. с разрешением 1600x1200, 1024x768 и любым разрешением изображения, указанным в руководстве N95. 2. с BMP и PNG.

В любом случае, основываясь на моих предыдущих опытах (которые могут быть устаревшими), реализации j2me полны ошибок, поэтому не может быть рабочего решения вашей проблемы.

1

«Качество» JPEG (как интерпретируется кодом) не имеет ничего общего с разрешением. Скорее, это связано с тем, как сжато изображение. Изображение размером 640x480 при 100 качество будет заметно лучше, чем изображение 640x480 на 50, но будет использовать больше места для хранения.

Попробуйте вместо этого:

jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536"); 
+0

Спасибо за помощь, но это создает еще одну проблему (см. Править). – Cory 2008-10-28 21:52:56

3

Разрешение вашей камеры изначально: 2582 x 1944. Попробуйте захватить там, чтобы посмотреть, как это происходит.

Это место: http://developers.sun.com/mobility/midp/articles/picture/index.html

Упоминание использования:

byte[] raw = mVideoControl.getSnapshot(null); 
Image image = Image.createImage(raw, 0, raw.length); 

Использование сырья представляется интересным, чтобы получить собственное разрешение.

Смежные вопросы