forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_snap - фотографирование (http://forum.boolean.name/showthread.php?t=14444)

YellowAfterlife 19.03.2011 14:11

Lib_snap - фотографирование
 
Вложений: 1
Итак, эта нехитрая библиотека позволяет вам получать изображение с камеры телефона, в указанном формате, качестве, и размере.

Достаточно полезная штука, если вы желаете написать редактор изображений, или просто игру где можно использовать фотографии.

Всего в библиотеке 5 функций. Одна для инициализации, одна собственно для фотографирования, и 3 для того чтобы выяснять, работает ли программа или почему она не работает. При этом библиотека никогда не вызовет краха самой игры.

В вложении - папка проэкта библиотеки, в которой можно найти саму библиотеку (Lib_snap.class) и умеренно откоментированный пример программы на ней.

Документация:
Код:

Lib_snap
    by YellowAfterlife
  Документация
    SnapInit() - Инициализировать библиотеку. Вызывать в начале программы.
    SnapAvaible():Integer (0\1) - Возращает, доступна ли камера устройства.
      Предполагаемое использование - закрывать программу если нет камеры.
    SnapGet(Params:String):Image - Делает фотографию с задаными параметрами.
      Если строка параметров пустая, будут использованы параметры устройства
      по умолчанию (не очень хорошая идея). Иначе, формат строки параметров:
        encoding=#type&quality=#level&width=#w&height=#h
          #type - кодирование (jpeg\bmp\png, jpeg работает чаще всего)
          #level - качество (0..100) для JPEG
          #w - ширина изображения.
          #h - высота изображения.
        Пример: 'encoding=jpeg&quality=100&width=240&height=320'
          Означает: JPEG кодирование, 100% качество, 240x320
    SnapWorks():Integer - Возращает результат работы SnapGet
      0 - функция еще не вызывалась
      -1 - функция сработала (получено изображение)
      1 - обычная ошибка, используйте SnapError чтобы узнать о ней больше
      2 - ошибка состояния, формат не поддерживается или забыта инициализация.
      3 - ошибка безопасности - пользователь не разрешил фотографировать.
    SnapError():String - возращает текст ошибки или ее название.


Исходный код библиотеки:
Он может показатся немного странным, но это изза очень тщательного слежения за ошибками.
PHP код:

import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.control.VideoControl;
import javax.microedition.lcdui.Image;
import java.lang.IllegalStateException;
import java.lang.SecurityException;
public class 
Lib_snap {
public static 
Player _lsp;
public static 
VideoControl _lsv;
public static 
int _lsw 0;
public static 
int _lsc 0;
public static 
String _lse;
public static 
void snapinit() {
try {
_lsp Manager.createPlayer("capture://image");
_lsp.realize();
_lsv = (VideoControl)_lsp.getControl("VideoControl");
_lsv.initDisplayMode(VideoControl.USE_GUI_PRIMITIVEnull);
_lsw = ((_lsv != null) ? 0);
_lsp.start();
} catch (
Exception e) { _lsw 0; }
}
public static 
Image snapget(String s)
{
try {
byte[] _lsv.getSnapshot(== "" null s);
_lsc = -1;
_lse null;
Image i Image.createImage(r0r.length);
return 
i;
}
catch (
IllegalStateException e) { _lsc 2_lse e.getMessage(); if (_lse == null_lse e.toString(); return null; }
catch (
SecurityException e) { _lsc 3_lse e.getMessage(); if (_lse == null_lse e.toString(); return null; }
catch (
Throwable e) {
_lse e.getMessage(); if (_lse == null_lse e.toString();
_lsc 1;
return 
null;
}
}
public static 
int snapworks() { return _lsc; }
public static 
int snapavaible() { return _lsw; }
public static 
String snaperror() { return _lse; }



marcuzy 20.03.2011 17:25

Ответ: Lib_snap - фотографирование
 
Спасибо большое, как повезло что мне свой (русскоязычный) помог)

marcuzy 21.03.2011 08:48

Ответ: Lib_snap - фотографирование
 
Да, не плохо бы иметь доступ к видео, потому что фото снимается с задержками, а мне необходимо хотябы 5 кадров/сек, + если можно, как-то управлять звуком камеры (отключать), а то при фотографировании срабатывает соответствующий звук, причем настройки камеры не помогают.
Заранее спасибо.

marcuzy 21.03.2011 12:38

Ответ: Lib_snap - фотографирование
 
попробую доработать ваш код для работы в режиме видео, результат выложу сюда же

nil0q 18.06.2011 20:16

Ответ: Lib_snap - фотографирование
 
У кого-нибудь она работает??? :mda:
SnapAvaible() упорно выдаёт 0. хотя ProPaintMobile и CellIDPS снимают без проблем, а первый ещё и список форматов показывает и выбрать предлагает. :pure_magic:
Зы: телефон SE j105


Часовой пояс GMT +4, время: 18:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot