/// <summary>
        /// Returns latest ir or color frame in base64 format.
        /// </summary>
        /// <param name="type">Frame type. Either Color or Infrared</param>
        /// <param name="promise"></param>
        /// <returns></returns>
        public async Task TakePictureAsync(MediaFrameSourceKind type, IReactPromise <JSValueObject> promise)
        {
            var base64Frame = "";

            if (type == MediaFrameSourceKind.Color && colorFrame != null)
            {
                base64Frame = await ConvertToBase64(colorFrame);
            }

            if (type == MediaFrameSourceKind.Infrared && irFrame != null)
            {
                base64Frame = await ConvertToBase64(irFrame);
            }

            if (string.IsNullOrEmpty(base64Frame))
            {
                var err = new ReactError();
                err.Message = "Error taking picture.";
                promise.Reject(err);
            }

            var obj = new JSValueObject();

            obj.Add("base64", base64Frame);

            promise.Resolve(obj);
        }