FGX.Camera.TfgCustomCamera: различия между версиями

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
(summary)
 
(summary)
Строка 14: Строка 14:
  
  
<p>Компонент доступа к камере устройства. Позволяет выбрать камеру наилучшим образом согласно настройкам.</p><div class="info">Ограничение: можно использовать только один компонент с <i>Active.True</i> в рамках всего приложения.</div>
+
<p>Компонент доступа к камере устройства. Позволяет выбрать камеру наилучшим образом согласно настройкам.</p><div class="info"><p>Ограничение: можно использовать только один компонент с <i>Active.True</i> в рамках всего приложения.</p><p>Камера автоматически отключается, когда приложение уходит в фон и заново восстанавливает свою работу, когда приложение выходит на передний план.</p></div>
 
== Конструкторы ==
 
== Конструкторы ==
  
Строка 27: Строка 27:
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
|-
 
|-
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">AttachPreview(const APreview: [[FGX.Camera.IFGXCameraPreview|IFGXCameraPreview]])</code>
+
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">AttachPreview(const APreview: [[FGX.Camera.Types.IFGXCameraPreview|IFGXCameraPreview]])</code>
  
 
<p>Прикрепляет к текущей камере контрол для вывода превью.</p><div class="info">К одной камере можно прикреплять несколько потребителей кадров.</div>
 
<p>Прикрепляет к текущей камере контрол для вывода превью.</p><div class="info">К одной камере можно прикреплять несколько потребителей кадров.</div>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">DeattachPreview(const APreview: [[FGX.Camera.IFGXCameraPreview|IFGXCameraPreview]])</code>
+
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">DetachPreview(const APreview: [[FGX.Camera.Types.IFGXCameraPreview|IFGXCameraPreview]])</code>
 
<p>Отвязывает прикрепленный для превью контрол.</p>
 
<p>Отвязывает прикрепленный для превью контрол.</p>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">DeattachPreviews()</code>
+
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">DetachPreviews()</code>
 
<p>Отвязывает все прикрепленные для превью контролы.</p>
 
<p>Отвязывает все прикрепленные для превью контролы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetTheBestSize(const AFrameType: [[FGX.Camera.Types.TfgFrameType|TfgFrameType]]; const AWishesSize: [[TSize]]): [[TSize]]</code>
 +
<p>Возвращает наилучший размер кадра камеры (из списка доступных конфигураций камеры) на основании желаемого размера <i>AWishesSize</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetTheBestSize(const ASizes: [[TArray<System.Types.TSize>]]; const AWishesSize: [[TSize]]): [[TSize]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">CapturePhotoAsync(const AFileName: [[string]])</code>
 +
 +
<p>Асинхронно выполняет запрос на получение фотографии с камеры с максимально допустимым размером <i>MaxFrameSize</i> и сохраняет фотографию в файл <i>AFileName</i> . Если фотография успешно снята, то вызывается событие <i>OnCaptureReady</i> , в противном случае - <i>OnCaptureError</i> .</p><div class="info">Обязательно убедитесь, что ваше приложение имеет доступ к месторасположению вашего будущего файла фотографии <i>AFileName</i> .</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">CapturePhotoAsync(const ABtmap: [[FGX.Canvas.TfgBitmap|TfgBitmap]])</code>
 +
 +
<p>Асинхронно выполняет запрос на получение фотографии с камеры с максимально допустимым размером <i>MaxFrameSize</i> и сохраняет фотографию в битмап <i>ABtmap</i> . Если фотография успешно снята, то вызывается событие <i>OnCaptureReady</i> , в противном случае - <i>OnCaptureError</i> .</p><div class="info">Битмап имеет ограничение на максимально допустимый размер, поэтому перед вызовом метода убедитесь, что <i>ARequiredSize</i> согласован с <i>TfgBitmap.MaxSize</i> .</div>
 
|}
 
|}
  
Строка 42: Строка 56:
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
|-
 
|-
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>NativeCamera: [[FGX.Camera.IFGXCamera|IFGXCamera]]</code>
+
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>NativeCamera: [[FGX.Camera.Types.IFGXCamera|IFGXCamera]]</code>
  
<p>Доступ к выбранной камере.</p><div class="info">Может вернуть <i>nil</i> , если ни одна камера не подходит под заданные настройки.</div>
+
<p>Доступ к выбранной камере.</p><div class="info">Может вернуть <i>nil</i> , если ни одна камера не подходит под заданные настройки. Возвращает null, если камера не запущена.</div>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Active: [[Boolean]]</code>
 
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Active: [[Boolean]]</code>
 
<p><i>True</i> - камера запускается/запущена. <i>False</i> - камера остановлена.</p>
 
<p><i>True</i> - камера запускается/запущена. <i>False</i> - камера остановлена.</p>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>CameraType: [[FGX.Camera.TfgCameraType|TfgCameraType]]</code>
+
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>CameraType: [[FGX.Camera.Types.TfgCameraType|TfgCameraType]]</code>
 
<p>Необходимый тип камеры.</p>
 
<p>Необходимый тип камеры.</p>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>MaxFrameSize: [[FGX.Types.TfgSingleSize|TfgSingleSize]]</code>
+
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>MaxFrameSize: [[FGX.Types.TfgIntegerSize|TfgIntegerSize]]</code>
  
 
<p>Необходимый максимально допустимый размер кадров, которые генерирует камера.</p><div class="info">Если указано значени 0 для щирины и/или высоты, то это означает, что соответствующий размер не имеет ограничения.</div>
 
<p>Необходимый максимально допустимый размер кадров, которые генерирует камера.</p><div class="info">Если указано значени 0 для щирины и/или высоты, то это означает, что соответствующий размер не имеет ограничения.</div>
Строка 64: Строка 78:
  
 
<p>Срабатывает, когда камеры уже выбраны согласно указанным настройкам.</p><div class="info">Согласно указанным настройкам компонент может выбрать более, чем одну камеру. В этом случае, компонент по умолчанию выбирает первую из списка. При помощи этого события вы можете скорректировать выбор камеры.</div>
 
<p>Срабатывает, когда камеры уже выбраны согласно указанным настройкам.</p><div class="info">Согласно указанным настройкам компонент может выбрать более, чем одну камеру. В этом случае, компонент по умолчанию выбирает первую из списка. При помощи этого события вы можете скорректировать выбор камеры.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnError: [[TOnCameraErrorEvent]]</code>
 +
<p>Вызвается, когда в камере возникает ошибка.</p>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnStateChanged: [[TOnCameraStateChangedEvent]]</code>
 
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnStateChanged: [[TOnCameraStateChangedEvent]]</code>
 
<p>Вызывается, когда камера меняет свое состояние.</p>
 
<p>Вызывается, когда камера меняет свое состояние.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnCapturePhotoError: [[TOnCameraCapturePhotoErrorEvent]]</code>
 +
<p>Вызывается, если в процессе получения фотографии с камеры возникла ошибка.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnCapturePhotoReady: [[TOnCameraCapturePhotoReadyEvent]]</code>
 +
<p>Вызывается, когда фотография получена с камеры.</p>
 
|}
 
|}
  
Строка 79: Строка 102:
 
<span style="color:gray">Описание отсутствует.</span>
 
<span style="color:gray">Описание отсутствует.</span>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">const</syntaxhighlight> || <code>DefaultCameraType: [[FGX.Camera.TfgCameraType|TfgCameraType]]</code>
+
| <syntaxhighlight lang="Delphi">const</syntaxhighlight> || <code>DefaultCameraType: [[FGX.Camera.Types.TfgCameraType|TfgCameraType]]</code>
 
<span style="color:gray">Описание отсутствует.</span>
 
<span style="color:gray">Описание отсутствует.</span>
 
|}
 
|}

Версия 03:08, 30 декабря 2019

Delphi

TfgCustomCamera = class (TComponent)

TComponent -> TfgCustomCamera

Прямые наследники: TfgCamera

Описание

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

Ограничение: можно использовать только один компонент с Active.True в рамках всего приложения.

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

Конструкторы

constructor
Create(AOwner: TComponent)

Описание отсутствует.

Методы

procedure
AttachPreview(const APreview: IFGXCameraPreview)

Прикрепляет к текущей камере контрол для вывода превью.

К одной камере можно прикреплять несколько потребителей кадров.
procedure
DetachPreview(const APreview: IFGXCameraPreview)

Отвязывает прикрепленный для превью контрол.

procedure
DetachPreviews()

Отвязывает все прикрепленные для превью контролы.

function
GetTheBestSize(const AFrameType: TfgFrameType; const AWishesSize: TSize): TSize

Возвращает наилучший размер кадра камеры (из списка доступных конфигураций камеры) на основании желаемого размера AWishesSize .

function
GetTheBestSize(const ASizes: [[TArray<System.Types.TSize>]]; const AWishesSize: TSize): TSize

Описание отсутствует.

procedure
CapturePhotoAsync(const AFileName: string)

Асинхронно выполняет запрос на получение фотографии с камеры с максимально допустимым размером MaxFrameSize и сохраняет фотографию в файл AFileName . Если фотография успешно снята, то вызывается событие OnCaptureReady , в противном случае - OnCaptureError .

Обязательно убедитесь, что ваше приложение имеет доступ к месторасположению вашего будущего файла фотографии AFileName .
procedure
CapturePhotoAsync(const ABtmap: TfgBitmap)

Асинхронно выполняет запрос на получение фотографии с камеры с максимально допустимым размером MaxFrameSize и сохраняет фотографию в битмап ABtmap . Если фотография успешно снята, то вызывается событие OnCaptureReady , в противном случае - OnCaptureError .

Битмап имеет ограничение на максимально допустимый размер, поэтому перед вызовом метода убедитесь, что ARequiredSize согласован с TfgBitmap.MaxSize .

Свойства

property
NativeCamera: IFGXCamera

Доступ к выбранной камере.

Может вернуть nil , если ни одна камера не подходит под заданные настройки. Возвращает null, если камера не запущена.
property
Active: Boolean

True - камера запускается/запущена. False - камера остановлена.

property
CameraType: TfgCameraType

Необходимый тип камеры.

property
MaxFrameSize: TfgIntegerSize

Необходимый максимально допустимый размер кадров, которые генерирует камера.

Если указано значени 0 для щирины и/или высоты, то это означает, что соответствующий размер не имеет ограничения.

События

event
OnCameraSelect: TOnCameraSelectEvent

Срабатывает, когда камеры уже выбраны согласно указанным настройкам.

Согласно указанным настройкам компонент может выбрать более, чем одну камеру. В этом случае, компонент по умолчанию выбирает первую из списка. При помощи этого события вы можете скорректировать выбор камеры.
event
OnError: TOnCameraErrorEvent

Вызвается, когда в камере возникает ошибка.

event
OnStateChanged: TOnCameraStateChangedEvent

Вызывается, когда камера меняет свое состояние.

event
OnCapturePhotoError: TOnCameraCapturePhotoErrorEvent

Вызывается, если в процессе получения фотографии с камеры возникла ошибка.

event
OnCapturePhotoReady: TOnCameraCapturePhotoReadyEvent

Вызывается, когда фотография получена с камеры.

Константы

const
UndefinedFrameSize: Integer

Описание отсутствует.

const
DefaultActive: Boolean

Описание отсутствует.

const
DefaultCameraType: TfgCameraType

Описание отсутствует.