powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ImageEn: медленное переключение разрешения у камеры.
4 сообщений из 4, страница 1 из 1
ImageEn: медленное переключение разрешения у камеры.
    #39990450
Sh2kerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.

В программе есть возможность фотографирования документов и сканирование обычным сканером или МФУ.
Для работы с камерой пользуюсь библиотекой ImageEn версии 5.2.
Максимальное разрешение у камеры 4896х3762 и как показали эксперименты для фото документов подходит лучше всего. Проблема в том, что при выборе разрешения компонент TImageEnView долго думает. Т.е. новое выбранное разрешение применяется секунд через 8. Без разницы какое разрешение выбираю 1920х1080 или более высокое - тормозит одинаково.

Переключение на другое разрешение делаю по событию ComboBox-а вот так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TfmCamera.cbbResolutionSelect(Sender: TObject);
var
  modeIndex: integer; //Пользователю показываю не все режимы, поэтому пришлось добавить дополнительный массив хранящий реальные индексы режимов камеры.
begin
  modeIndex := StrToInt(FMode[cbbResolution.ItemIndex]);
  FSelectedMode := imgenPreview.IO.MediaFoundationSourceReader.GetMediaType(mmf_VIDEO_STREAM, modeIndex);

  if imgenPreview.IO.MediaFoundationSourceReader.Capturing then
    imgenPreview.IO.MediaFoundationSourceReader.StopCapture();

  imgenPreview.IO.MediaFoundationSourceReader.SelectMediaType(mmf_VIDEO_STREAM, modeIndex);
  // Автоповорот изображения (работает в win 8)
  imgenPreview.IO.MediaFoundationSourceReader.VideoProcessor.SetMirror(mfpmHorizontal);
  imgenPreview.IO.MediaFoundationSourceReader.VideoProcessor.SetRotation(mfprNormal);

  imgenPreview.IO.MediaFoundationSourceReader.StartCapture();
end;



Модель камеры: DOKO Book Scaner BS16.

Видимо я чего-то не знаю. Код брал и немного модифицировал из примеров с сайта ImageEn.
...
Рейтинг: 0 / 0
ImageEn: медленное переключение разрешения у камеры.
    #39990451
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sh2kerr,
Проверь переключение на какой-нибудь внешней утилите типа AMCap.
...
Рейтинг: 0 / 0
ImageEn: медленное переключение разрешения у камеры.
    #39990509
Sh2kerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соколинский Борис, спасибо. С web-камерой работает, правда при переключении тоже подтупливает, но включается раза в 2 быстрее, чем у меня. С документ-камерой вообще отказывается работать - падает с исключением.

Поищу другие утилитки.
...
Рейтинг: 0 / 0
ImageEn: медленное переключение разрешения у камеры.
    #39992156
Sh2kerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдруг кому-то пригодится. Добавлю, что нашёл пока костыльное решение: когда форма закрывается ставлю видеозахват с камеры на паузу, тогда при очередном вызове нет тормозов, разрешение по умолчанию ставлю самое высокое ~18 мегапикселей. Правда есть минус - съедает около 400 метров оперативки (это с камерой DOKO Book Scaner BS16). Если вызывать метод StopCapture, а не PauseCapture, то память постепенно освобождается.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ImageEn: медленное переключение разрешения у камеры.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]