Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

PhotoCapture.TakePhotoAsync

Объявление

public void TakePhotoAsync(string filename, Windows.WebCam.PhotoCaptureFileOutputFormat fileOutputFormat, Windows.WebCam.PhotoCapture.OnCapturedToDiskCallback onCapturedPhotoToDiskCallback);

public void TakePhotoAsync(Windows.WebCam.PhotoCapture.OnCapturedToMemoryCallback onCapturedPhotoToMemoryCallback);

Параметры

filename Место, где должна быть сохранена фотография. Имя файла должно заканчиваться расширением png или jpg.
fileOutputFormat Формат кодирования, который следует использовать.
onCapturedPhotoToDiskCallback Вызывается после сохранения фотографии на диск.
onCapturedPhotoToMemoryCallback Вызывается после копирования фотографии в целевую текстуру.

Описание

Асинхронно захватывает фото с веб-камеры и сохраняет его на диск.

Этот метод можно использовать двумя способами. Вы можете использовать этот метод для захвата фотографии с веб-камеры непосредственно в память процессора. Затем вы можете применить данные изображения к текстуре для использования в Unity или передать данные изображения внешнему плагину. При захвате фотографии непосредственно в память вам также будет предоставлена ​​пространственная информация, которая позволит вам узнать, где в пространстве было сделано изображение. Вы также можете записать фотографию прямо на диск в формате png или jpg.

Метаданные

EXIF будут закодированы в захваченное изображение при сохранении изображения в формате JPEG. Вы можете сохранить захваченное изображение в формате JPEG при использовании пиксельных форматов BGRA32 и NV12. Вы можете сохранить захваченное изображение только в формате PNG при использовании формата пикселей BGRA32.

В этом примере будет получено изображение с веб-камеры и сохранено на диск.

using UnityEngine; using System.Collections; using System.Linq; using UnityEngine.Windows.WebCam; public class PhotoCaptureToDiskExample : MonoBehaviour { PhotoCapture photoCaptureObject = null; static readonly int TotalImagesToCapture = 3; int capturedImageCount = 0; // Use this for initialization void Start() { Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); Texture2D targetTexture = new Texture2D(cameraResolution.width, cameraResolution.height); PhotoCapture.CreateAsync(false, delegate(PhotoCapture captureObject) { Debug.Log("Created PhotoCapture Object"); photoCaptureObject = captureObject; CameraParameters c = new CameraParameters(); c.hologramOpacity = 0.0f; c.cameraResolutionWidth = targetTexture.width; c.cameraResolutionHeight = targetTexture.height; c.pixelFormat = CapturePixelFormat.BGRA32; captureObject.StartPhotoModeAsync(c, delegate(PhotoCapture.PhotoCaptureResult result) { Debug.Log("Started Photo Capture Mode"); TakePicture(); }); }); } void OnCapturedPhotoToDisk(PhotoCapture.PhotoCaptureResult result) { Debug.Log("Saved Picture To Disk!"); if (capturedImageCount < TotalImagesToCapture) { TakePicture(); } else { photoCaptureObject.StopPhotoModeAsync(OnStoppedPhotoMode); } } void TakePicture() { capturedImageCount++; Debug.Log(string.Format("Taking Picture ({0}/{1})...", capturedImageCount, TotalImagesToCapture)); string filename = string.Format(@"CapturedImage{0}.jpg", capturedImageCount); string filePath = System.IO.Path.Combine(Application.persistentDataPath, filename); photoCaptureObject.TakePhotoAsync(filePath, PhotoCaptureFileOutputFormat.JPG, OnCapturedPhotoToDisk); } void OnStoppedPhotoMode(PhotoCapture.PhotoCaptureResult result) { photoCaptureObject.Dispose(); photoCaptureObject = null; Debug.Log("Captured images have been saved at the following path."); Debug.Log(Application.persistentDataPath); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3