Перейти к содержанию
AlexG

[Задача, Android] Добавление возможности указывать размер получаемого изображения с камеры

Рекомендуемые сообщения

Здравствуйте!
Хотел бы опубликовать у Вас задачу для выполнения по теме http://fire-monkey.ru/topic/497-izmenenie-parametrov-kamery/

Как правильно я должен это сделать?
Какие условия для публикации задачи?
Кого в качестве исполнителя, если такой найдется, я могу выбрать?

Заранее благодарен за ответ!

Поделиться сообщением


Ссылка на сообщение

Имеем:
Среда: Delphi XE6
OS: Android 4.0.3 и выше

В проекте используется TCameraComponent.
Для разработки/тестирования можно использовать любой пример из установленного пакета с демонстрацией работы камеры.

Проблема:
При включении камеры, захвате изображения и вывода его на экран, происходит следующее:
- Захват кадров происходит с разрешением установленным "по умолчанию". Чаще всего - в очень высоком разрешении.

Задача:
Изменить параметры инициализации камеры (на мобильнике/планшете) при включении (либо в любой другой момент времени), для установки собственного разрешения из возможных доступных. Например, включить захват с разрешением 640*480 (640*360, не принципиально).

P.S. Не предлагать решение с приведением захваченного изображения к нужному, посредством масштабирования (изменения размера изображения после его захвата).

 

P.S.S. Надеюсь - корректно описал задачу.

В итоге - нужен либо "исправленный" стандартный модуль FMX, либо процедуры/функции для работы с данными свойствами.

Отредактировал AlexG

Поделиться сообщением


Ссылка на сообщение

Добрый день,

  1. Я ответил на вашу тему. Посмотрите, может вам уже не понадобиться.
  2. У нас нет регламента, как публиковать задание. Вы можете сделать это в любой удобной для вас форме.
  3. Опять же выбрать можете любого, кто откликнется. Все на ваше пожелание. Условия можете обсудить с каждым индивидуально в личных сообщениях или любым другим способом.

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

Функциональность по заданию размера получаемого изображения с камеры добавлена в TCameraComponent в XE8.

 

За качество отвечают свойства:

  1. TCameraComponent.Quality
  2. TCameraComponent.AvailableCaptureSettings
  3. TCameraComponent.CaptureSetting
  4. TCameraComponent.CaptureSettingPriority

Поделиться сообщением


Ссылка на сообщение

Спасибо Ярослав за инфу. Я уже большую часть функций давно реализовал, а недавно посмотрел и в XE8 то о чем Вы написали.

Жаль, что это только в XE8... (так как 8-ка меня "не порадовала"...)

Поделиться сообщением


Ссылка на сообщение

Что в ней хуже чем в 7?

Катастрофически нестабильна... (И проверял не на одном компе...) Как только проект побольше демки - все...

Поделиться сообщением


Ссылка на сообщение

У меня проект, скажем так, немалый и нет никаких проблем, ну за исключением {censored} утечки памяти у самой среды когда копаешься в StyleBook, но это терпимо. Вы про нестабильность среды или приложений?

Поделиться сообщением


Ссылка на сообщение

У меня проект тоже немалый. Так вот, - мало того что сама среда безбожно глючит, так еще и не работает (не запускается) само приложение. А разбираться, потратив очередные недели, никакого желания нет.

Простенькие приложения компилятся и работают "на ура", а что посложнее - вот тут начинаются свистоперделки.

Касаемо самой xe8 - работа проделана приличная. И по исправлению старых багов (и по внесению новых), и по самой среде. Много нового, много полезного. Но покупать, в очередной раз, никакого желания.

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Pavel M
      В программе использую вспышку
      Camera.TorchMode := TTorchMode.ModeOn; После этого до камеры невозможно достучаться через IFMXCameraService.TakePhoto без предварительного включения затем выключения компонента. т.е. при любом обращении к свойствам компонента камера остается занятой для IFMXCameraService (даже при обращении к AvailableCaptureSettings)
      procedure TfrmMain.btnMakePhotoTap(Sender: TObject; const [Ref] Point: TPointF);var xService: IFMXCameraService; xParams: TParamsPhotoQuery; xCtrl: TControl; xCamera: TCameraComponent; xCamSettings: TArray<TVideoCaptureSetting>; xMaxResH, xMaxResW: Integer;begin //контрол для вызова IFMXCameraService.TakePhoto(AControl, AParam) xCtrl := TControl.Create(SELF); xCamera := TCameraComponent.Create(SELF); xCamSettings := xCamera.AvailableCaptureSettings; //получаем максимальное разрешение xMaxResH := xCamSettings[Low(xCamSettings)].Height; xMaxResW := xCamSettings[Low(xCamSettings)].Width; //////////////////////////////////////////////// // БЕЗ ЭТОГО xService.TakePhoto НЕ ЗАПУСКАЕТСЯ /////////////////////////////////////////////// xCamera.Active := True; //<- Именно сначала doStart xCamera.Active := False; // //////////////////////////// FreeAndNil(xCamera); if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, xService) then begin xParams.Editable := False; //ИНАЧЕ НЕ СОХРАНЯЕТ В АЛЬБОМ!!! xParams.NeedSaveToAlbum := True; xParams.RequiredResolution := TSize.Create(xMaxResH,xMaxResW ); xService.TakePhoto(xCtrl, xParams); end else ShowMessage('This device does not support the camera service'); FreeAndNil(xCtrl);end; Как можно освободить камеру без щелканья объективом? Задача сделать фото максимального качества в галерею.
      (Фактически это стандартный экшен "сделать фото" - но он не работает после игры с фанариком)
      Буду раз за любые комментарии по коду.
    • От kolyalyan
      У меня следующая проблема, когда подключаюсь к камере телефона, то кадры отображаются с ужасной задержкой, нааамного медленнее чем в сторонних приложениях работающих с камерой.

      Для подключения к камере использую следующий код:
       
      procedure TForm1.FormShow(Sender: TObject); var CDM : TCaptureDeviceManager; VC : TVideoCaptureDevice; begin CDM := TCaptureDeviceManager.Current; VC := CDM.DefaultVideoCaptureDevice; if (VC <> nil) then VC.OnSampleBufferReady := VideoBufferReady; VC.StartCapture; end; Для загрузки кадров в TImage этот:
       
      procedure TForml.VideoBufferReady(Sender: TObject; const ATime: int64); var VCD : TVideoCaptureDevice; begin VCD := Sender as TVideoCaptureDevice; VCD.SampleBufferToBitmap(Image1.Bitmap, True); end; Ещё раз повторюсь, что всё работает, но чрезвычайно медленно. Пробовал стандартный компонент TCameraComponent, но он работает также или даже ещё медленнее.
    • От neo
      Народ а как поменять разрешение получаемой картинки через CameraComponent?
      по умолчанию получаю очень маленькую картинку... хотелось бы сделать её на весь экран =(
      добавляю сюда CameraComponent1SampleBufferReady
      CameraComponent1.Quality := TVideoCaptureQuality.highQuality; image.Width := image.Bitmap.Width; image.Height := image.Bitmap.Height;
      но ничего не меняется =(
      походу это можно делать только в XE8 а у меня XE7
      и использовать нужно CaptureSetting
    • От Pax Beach
      Здравствуйте!
      Не смог понять, как на лету настраивать четкость изображения с TCameraComponent.
       
      FPS — 2-3 кадра в секунду меня устраивает, но четкость камера сама не настраивает, как это делает нативная камера смартфона.
      В основном страдает задняя камера, фронтальная почему-то нормальную четкость держит.
      Может знаете, как регулировать четкость фотографии (свойство, метод)?
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...