// ------------------------------------------- /* * OnPhotoModeStarted */ private void OnPhotoModeStarted(UnityEngine.Windows.WebCam.PhotoCapture.PhotoCaptureResult result) { if (result.success) { m_photoCaptureObject.TakePhotoAsync(OnCapturedPhotoToMemory); } else { Debug.Log("Unable to start photo mode!"); } }
// ------------------------------------------- /* * OnCapturedPhotoToMemory */ public void OnCapturedPhotoToMemory(UnityEngine.Windows.WebCam.PhotoCapture.PhotoCaptureResult result, UnityEngine.Windows.WebCam.PhotoCaptureFrame photoCaptureFrame) { if (result.success) { Texture2D imageTexture2D = new Texture2D(1, 1); photoCaptureFrame.UploadImageDataToTexture(imageTexture2D); byte[] dataStream = imageTexture2D.EncodeToJPG(75); Debug.Log("DIMENSIONS[" + imageTexture2D.width + "," + imageTexture2D.height + "]::dataStream=" + dataStream.Length); // MAKE BINARY DATA PACKET WITH IMAGE NetworkEventController.Instance.DispatchNetworkBinaryDataEvent(EVENT_STREAMINGHOLOLENS_IMAGE_DATA, BitConverter.GetBytes(imageTexture2D.width), BitConverter.GetBytes(imageTexture2D.height), dataStream); m_photoCaptureObject.StopPhotoModeAsync(OnStoppedPhotoMode); } else { Debug.Log("Failed to get photo memory frame"); } }
// ------------------------------------------- /* * OnStoppedPhotoMode */ private void OnStoppedPhotoMode(UnityEngine.Windows.WebCam.PhotoCapture.PhotoCaptureResult result) { m_photoCaptureObject.Dispose(); m_photoCaptureObject = null; }