async void TakePhoto_Clicked(object sender, System.EventArgs e)
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                await DisplayAlert("No Camera", ":) No camera avaiable", "Close");

                return;
            }

            if (ImageFile != null)
            {
                ImageFile.Dispose();
            }

            ImageFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
            });

            if (ImageFile == null)
            {
                return;
            }

            Console.WriteLine(ImageFile.AlbumPath);

            MainImage.Source = ImageSource.FromStream(() =>
            {
                var stream = ImageFile.GetStream();
                return(stream);
            });
        }
Exemple #2
0
        private async Task MakePredictionRequest(MediaFile file)
        {
            try
            {
                Contract.Ensures(Contract.Result <Task>() != null);
                var client = new HttpClient();

                client.DefaultRequestHeaders.Add("Prediction-Key", "9b2cd115e674489c892a12aa9b4747f2");

                string url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/9ced7a98-a868-45b5-a7ca-e9112877744a/image?iterationId=decd2fad-4dfe-4c98-a7f3-7b82e1b058e6";
                HttpResponseMessage response;

                byte[] byteData = GetImageAsByteArray(file);

                using (var content = new ByteArrayContent(byteData))
                {
                    content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    response = await client.PostAsync(url, content);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        EvaluationModel responseModel = JsonConvert.DeserializeObject <EvaluationModel>(responseString);

                        List <Prediction> predictions = responseModel.Predictions;

                        foreach (Prediction prediction in predictions)
                        {
                            if (prediction.Probability >= 0.8)
                            {
                                var locator = CrossGeolocator.Current;
                                locator.DesiredAccuracy = 50;

                                var position = await locator.GetPositionAsync(10000);

                                foodLabel.Text        = prediction.Tag;
                                shareButton.IsVisible = true;
                                unsentModel           = new FoodLocationModel()
                                {
                                    Title     = prediction.Tag,
                                    Longitude = (float)position.Longitude,
                                    Latitude  = (float)position.Latitude
                                };
                                file.Dispose();
                                return;
                            }
                        }
                        foodLabel.Text = "What is this? Is this even food?";
                    }
                    //Get rid of file once we have finished using it
                    file.Dispose();
                }
            } catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught", e);
            }
        }
        private async Task TakePicture()
        {
            await CrossMedia.Current.Initialize();

            _imageSource = null;

            try
            {
                MediaFile mediaFile = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                {
                    PhotoSize     = Plugin.Media.Abstractions.PhotoSize.Medium,
                    SaveToAlbum   = true,
                    DefaultCamera = CameraDevice.Rear
                });

                if (mediaFile == null)
                {
                    return;
                }

                byte[] cropedBytes = await CrossXMethod.Current.CropImageFromOriginalToBytes(mediaFile.Path);

                byte[] resizeByte = DependencyService.Get <FuelDashApp.Helper.Interface.IMediaService>().ResizeImage(cropedBytes, 100, 100);
                if (resizeByte != null)
                {
                    FileInfo fi = new FileInfo(mediaFile.Path);
                    //_vm.ImageName = fi.Name;
                    if (resizeByte != null)
                    {
                        ImageSource AvatarImageSource = ImageSource.FromStream(() =>
                        {
                            var cropedImage = new MemoryStream(resizeByte);
                            // _vm.ImageLength = cropedImage.Length;
                            mediaFile.Dispose();
                            return(cropedImage);
                        });
                        //  _imageSource = AvatarImageSource;
                    }
                    else
                    {
                        mediaFile.Dispose();
                    }

                    //image = _imageSource;
                    //_vm.ImageAsByte = resizeByte;
                    //_vm.EditImage = _imageSource;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Exemple #4
0
        private async void OnTakePhotoButtonClicked(object sender, EventArgs e)
        {
            await CrossMedia.Current.Initialize();

            // Take photo
            if (CrossMedia.Current.IsCameraAvailable || CrossMedia.Current.IsTakePhotoSupported)
            {
                photo = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                {
                    Name      = "image.jpg",
                    PhotoSize = PhotoSize.Small
                });

                if (photo != null)
                {
                    image.Source = ImageSource.FromStream(photo.GetStream);
                }
            }
            else
            {
                await DisplayAlert("No Camera", "Camera unavailable.", "OK");
            }

            ((Button)sender).IsEnabled  = false;
            activityIndicator.IsRunning = true;

            // Recognize emotion
            try
            {
                if (photo != null)
                {
                    using (var photoStream = photo.GetStream())
                    {
                        var results = await visionClient.DescribeAsync(photoStream, 1);

                        if (results != null)
                        {
                            emotionResultLabel.Text = results.Description.Captions.FirstOrDefault().Text;
                        }
                        photo.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                photo.Dispose();
            }

            activityIndicator.IsRunning = false;
            ((Button)sender).IsEnabled  = true;
        }
Exemple #5
0
        async void Capture()
        {
            await CrossMedia.Current.Initialize();

            // Take photo
            if (CrossMedia.Current.IsCameraAvailable || CrossMedia.Current.IsTakePhotoSupported)
            {
                photo = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                {
                    Name      = "emotion.jpg",
                    Directory = "Celula",
                    PhotoSize = PhotoSize.Small
                });

                if (photo != null)
                {
                    image.Source = ImageSource.FromStream(photo.GetStream);
                }
            }
            else
            {
                await DisplayAlert("No Camera", "Camera unavailable.", "OK");
            }
            try
            {
                if (photo != null)
                {
                    using (var photoStream = photo.GetStream())
                    {
                        Emotion[] emotionResult = await emotionClient.RecognizeAsync(photoStream);

                        if (emotionResult.Any())
                        {
                            // Emotions detected are happiness, sadness, surprise, anger, fear, contempt, disgust, or neutral.
                            emotion.Text = TranslateEmotions.emotiones(emotionResult.FirstOrDefault().Scores.ToRankedList().FirstOrDefault().Key, result);
                        }
                        else
                        {
                            emotion.Text = "No emotion Detected";
                        }
                        photo.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            photo.Dispose();
        }
        public async Task <MyImage> GetPhotoAsync(GetPhotoType photoType)
        {
            MediaFile file = await GetPhotoMediaFileAsync(photoType);

            if (file == null)
            {
                return(null);
            }

            var image = new MyImage
            {
                Margin            = new Thickness(5, 0, 5, 5),
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.Start
            };

            //Ten stream może być tworzyny w zły sposób. Nie wiem czy jest potrzeba pobierać go aż 2 razy.
            var stream = file.GetStream();

            image.Source = ImageSource.FromStream(() =>
            {
                return(stream);
            });

            var streamTwo = file.GetStream();

            file.Dispose();
            var bytes = new byte[streamTwo.Length];
            await streamTwo.ReadAsync(bytes, 0, (int)streamTwo.Length);

            image.Base64Representation = Convert.ToBase64String(bytes);

            return(image);
        }
        private async void BtnSubmit_Clicked(object sender, EventArgs e)
        {
            var imageArray = FilesHelper.ReadFully(file.GetStream());

            file.Dispose();
            var country    = PickerCountry.Items[PickerCountry.SelectedIndex];
            var bloodGroup = PickerBloodGroup.Items[PickerBloodGroup.SelectedIndex];

            DateTime dateTime = DateTime.Now;
            int      d        = Convert.ToInt32(dateTime.ToOADate());

            var bloodUser = new BloodUser()
            {
                Username   = EntName.Text,
                Email      = EntEmail.Text,
                Phone      = EntPhone.Text,
                BloodGroup = bloodGroup,
                Country    = country,
                ImageArray = imageArray,
                Date       = d
            };
            ApiServices apiServices = new ApiServices();
            bool        response    = await apiServices.RegisterDonor(bloodUser);

            if (!response)
            {
                await DisplayAlert("Alert", "Something wrong", "Cancel");
            }
            else
            {
                await DisplayAlert("Hi", "Your record has beed added successfully", "Alright");
            }
        }
Exemple #8
0
        private async void BtnSubmit_OnClicked(object sender, EventArgs e)
        {
            var imageArray = FilesHelper.ReadFully(file.GetStream());

            file.Dispose();
            var country    = PickerCountry.Items[PickerCountry.SelectedIndex];
            var bloodGroup = PickerBloodGroup.Items[PickerBloodGroup.SelectedIndex];

            DateTime dateTime = DateTime.Now;
            int      d        = Convert.ToInt32(dateTime.ToOADate());

            var bloodUser = new BloodUser()
            {
                UserName   = EntName.Text,
                Email      = EntEmail.Text,
                Phone      = EntPhone.Text,
                BloodGroup = bloodGroup,
                Judetul    = country,
                ImageArray = imageArray,
                Date       = d
            };
            ApiServices apiServices = new ApiServices();
            bool        response    = await apiServices.RegisterDonatori(bloodUser);

            if (!response)
            {
                DisplayAlert("Alert", "Ceva nu-i bine", "Cancel");
            }
            else
            {
                DisplayAlert("Salut", "Ai fost inregistrat cu succes", "OK");
            }
        }
Exemple #9
0
        private async Task ExecuteCameraCommand()
        {
            MediaFile file = await CrossMedia.Current.TakePhotoAsync(
                new StoreCameraMediaOptions { PhotoSize = PhotoSize.Small });

            if (file == null)
            {
                return;
            }

            byte[] imageAsBytes;
            using (MemoryStream memoryStream = new MemoryStream())
            {
                file.GetStream().CopyTo(memoryStream);
                file.Dispose();
                imageAsBytes = memoryStream.ToArray();
            }

            if (imageAsBytes.Length > 0)
            {
                IImageResizer resizer = DependencyService.Get <IImageResizer>();
                imageAsBytes = resizer.ResizeImage(imageAsBytes, 1080, 1080);

                string base64String = Convert.ToBase64String(imageAsBytes);
                Debug.WriteLine(base64String);

                ImageSource imageSource = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));
                Images.Add(new ImageModel {
                    Source = imageSource, OrgImage = imageAsBytes
                });
            }
        }
        private async void BtnApply_Clicked(object sender, EventArgs e)
        {
            var imageArray = FileHelper.ReadFully(file.GetStream());

            file.Dispose();
            var instructor = new Instructor()
            {
                Name         = EntName.Text,
                Language     = EntLanguage.Text,
                Nationality  = EntNationality.Text,
                Gender       = PickerGender.Items[PickerGender.SelectedIndex],
                Phone        = EntPhone.Text,
                Email        = EntEmail.Text,
                Education    = EntEducation.Text,
                Experience   = PickerExperience.Items[PickerExperience.SelectedIndex],
                HourlyRate   = PickerHourlyRate.Items[PickerHourlyRate.SelectedIndex],
                CourseDomain = PickerCourseDomain.Items[PickerCourseDomain.SelectedIndex],
                City         = PickerCity.Items[PickerCity.SelectedIndex],
                OneLineTitle = EntOneLineTitle.Text,
                Description  = EdtDescription.Text,
                ImageArray   = imageArray,
                ImagePath    = ""
            };
            ApiService service  = new ApiService();
            var        response = await service.BecomeAnInstructor(instructor);

            if (!response)
            {
                await DisplayAlert("ERROR", "Does not compute", "EXTERMINATE!");
            }
            else
            {
                await DisplayAlert("Congratulations", "You are now an instructor. You have also been transformed into a cat", "Chur bro!");
            }
        }
Exemple #11
0
        async Task CreateImageDescription(MediaFile file)
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "51d20aa4b6164fabbf162f9d2de32c91");
            string url = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Description";

            HttpResponseMessage response;

            byte[] byteData = GetImageAsByteArray(file);
            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    PhotoCaptionModel model             = JsonConvert.DeserializeObject <PhotoCaptionModel>(responseString);
                    string            imageCaption      = model.description.captions.FirstOrDefault().text;
                    float             captionConfidence = model.description.captions.FirstOrDefault().confidence;
                    imageCaption      = char.ToUpper(imageCaption[0]) + imageCaption.Substring(1);
                    CaptionLabel.Text = (imageCaption);
                    await postLocationAsync(imageCaption, captionConfidence);
                }
                file.Dispose();
            }
        }
        async void onTakeVideo(object sender, System.EventArgs e)

        {
            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakeVideoSupported)
            {
                DisplayAlert("No Camera", ":( No camera avaialble.", "OK");
                return;
            }

            _mediaFile = await CrossMedia.Current.TakeVideoAsync(new Plugin.Media.Abstractions.StoreVideoOptions
            {
                Name      = "video.mp4",
                Directory = "DefaultVideos",
            });

            if (_mediaFile == null)
            {
                return;
            }


            DisplayAlert("Video Recorded", "Location: ", "OK");

            _mediaFile.Dispose();
        }
        async Task MakePredictionRequest(MediaFile file)
        {
            var client = new System.Net.Http.HttpClient();

            client.DefaultRequestHeaders.Add("Prediction-Key", "49918e8a54e64e948382c2657e5343e3");

            string url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/70c2cbca-16cb-4848-a9fb-f959ce7686fc/image?iterationId=f3042f17-a2a7-4670-b0f9-ee3ef66ea57a";

            System.Net.Http.HttpResponseMessage response;

            byte[] byteData = GetImageAsByteArray(file);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response = await client.PostAsync(url, content);


                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    EvaluationModel responseModel = JsonConvert.DeserializeObject <EvaluationModel>(responseString);

                    double max = responseModel.Predictions.Max(m => m.Probability);

                    TagLabel.Text = (max >= 0.5) ? "THIS PERSON IS LIKELY AN ALIEN" : "NOT AN ALIEN, YOU'RE SAFE";
                }

                //Get rid of file once we have finished using it
                file.Dispose();
            }
        }
Exemple #14
0
        private async void cameraBtnClicked(object sender, EventArgs e)
        {
            var action = await DisplayActionSheet("Take or select photo", "Cancel", null, "Take Picture", "Select picture");

            MediaFile m = null;

            switch (action)
            {
            case "Take Picture":
                m = await App.MANAGER.MediaContorller.TakePicture();

                break;

            case "Select picture":
                m = await App.MANAGER.MediaContorller.SelectPicture();

                break;
            }

            if (m == null)
            {
                return;
            }

            IImageProcessing processer = DependencyService.Get <IImageProcessing>();


            Bitmap b = await processer.ScaleBitmap(m.Source, await processer.GetBitmapOptionsOfImageAsync(m.Source), 200, 200);

            image.SetImageBitmap(b);
            pic = processer.compress(b);
            m.Dispose();
        }
        public async Task <ResponseEntity> UploadImageAsync(MediaFile file)
        {
            byte[] byteArray;
            using (var memoryStream = new MemoryStream())
            {
                file.GetStream().CopyTo(memoryStream);
                file.Dispose();
                byteArray = memoryStream.ToArray();
            }
            ByteArrayContent byteArrayContent = new ByteArrayContent(byteArray);
            Uri webService = new Uri("");
            HttpRequestMessage       requestMessage = new HttpRequestMessage(HttpMethod.Post, webService);
            MultipartFormDataContent dataContent    = new MultipartFormDataContent();

            byteArrayContent.Headers.Add("Content-Type", "application/octet-stream");
            dataContent.Add(byteArrayContent, "fileName");
            try
            {
                HttpResponseMessage httpRequest = await client.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead, CancellationToken.None);

                var responseContent = await httpRequest.Content.ReadAsStringAsync();

                //ProgressBarWidth += Percentage;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            throw new Exception();
        }
        async Task MakePredictionRequest(MediaFile file)
        {
            Contract.Ensures(Contract.Result <Task>() != null);
            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Prediction-Key", "a51ac8a57d4e4345ab0a48947a4a90ac");

            string url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/4da1555c-14ca-4aaf-af01-d6e1e97e5fa6/image?iterationId=7bc76035-3825-4643-917e-98f9d9f79b71";

            HttpResponseMessage response;

            byte[] byteData = GetImageAsByteArray(file);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response = await client.PostAsync(url, content);


                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    EvaluationModel responseModel = JsonConvert.DeserializeObject <EvaluationModel>(responseString);

                    double max = responseModel.Predictions.Max(m => m.Probability);

                    TagLabel.Text = (max >= 0.5) ? "Hotdog" : "Not hotdog";
                }

                //Get rid of file once we have finished using it
                file.Dispose();
            }
        }
Exemple #17
0
        public async Task <Tuple <ImageSource, string, Byte[], Stream> > TakePhoto()
        {
            try
            {
                if (!CrossMedia.Current.IsTakePhotoSupported)
                {
                    await App.Current.MainPage.DisplayAlert("Message", "Camera not Available!", "Okay");

                    return(new Tuple <ImageSource, string, Byte[], Stream>(null, ":( Camera not Available!", null, null));
                }
                string    imageName = "ErpTestImage_" + Guid.NewGuid().ToString() + ".jpg";
                MediaFile file      = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions()
                {
                    Directory          = "ERPWeb",
                    SaveToAlbum        = true,
                    Name               = imageName,
                    CompressionQuality = 92,

                    CustomPhotoSize = 15,
                });

                //  var path = file.Path;
                return(new Tuple <ImageSource, string, Byte[], Stream>(ImageSource.FromStream(() =>
                {
                    var stream = file.GetStream();
                    file.Dispose();
                    return stream;
                }), imageName, ConvertStreamToByteArray(file.GetStream()), file.GetStream()));

                //var promptConfig = new PromptConfig();
                //promptConfig.InputType = InputType.Name;
                //promptConfig.IsCancellable = true;
                //promptConfig.Message = "Enter Image Name";
                //var result = await UserDialogs.Instance.PromptAsync(promptConfig);
                //if (result.Ok)
                //{
                //    string imageName = result.Text;
                //    MediaFile file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions()
                //    {
                //        Directory = "Ezblast",
                //        SaveToAlbum = true,
                //        Name = imageName
                //    });

                //    //  var path = file.Path;
                //    return new Tuple<ImageSource, string, Byte[], Stream>(ImageSource.FromStream(() =>
                //    {
                //        var stream = file.GetStream();
                //        file.Dispose();
                //        return stream;
                //    }), imageName, ConvertStreamToByteArray(file.GetStream()), file.GetStream());
                //}

                return(null);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        async Task MakePredictionRequest(MediaFile file)
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Prediction-Key", "9edb926f637d4217a56323b6538e14a4");

            string url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/29e9309a-cc47-4123-b301-edaa3047ff89/image?iterationId=c8d11c4e-4192-4cef-8291-127ad9a74fcc";

            HttpResponseMessage response;

            byte[] byteData = GetImageAsByteArray(file);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response = await client.PostAsync(url, content);


                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    EvaluationModel responseModel = JsonConvert.DeserializeObject <EvaluationModel>(responseString);

                    double max = responseModel.Predictions.Max(m => m.Probability);

                    TagLabel.Text = (max >= 0.2) ? "SuperHero" : "Not SuperHero";
                }

                //Get rid of file once we have finished using it
                file.Dispose();
            }
        }
Exemple #19
0
        private async void LoadCamera(object sender, EventArgs e)
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                await DisplayAlert("No Camera", ":( No camera available.", "OK");

                return;
            }

            MediaFile file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
            {
                PhotoSize = PhotoSize.Medium,
                Directory = "Sample",
                Name      = $"{DateTime.UtcNow}.jpg"
            });

            if (file == null)
            {
                return;
            }

            image.Source = ImageSource.FromStream(() =>
            {
                return(file.GetStream());
            });

            file.Dispose();
        }
Exemple #20
0
        public async Task <Tuple <ImageSource, string, Byte[], Stream, string> > TakePhoto()
        {
            if (!CrossMedia.Current.IsTakePhotoSupported)
            {
                await UserDialogs.Instance.AlertAsync("Message", "Camera not Available!", "Okay");

                return(new Tuple <ImageSource, string, Byte[], Stream, string>(null, ":( Camera not Available!", null, null, null));
            }


            string    imageName = "ProfilePic" + Guid.NewGuid() + ".png";
            MediaFile file      = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions()
            {
                // Directory = "IncidentTrackerStorage",
                SaveToAlbum     = true,
                Name            = imageName,
                CustomPhotoSize = 20,
                PhotoSize       = PhotoSize.Small
            });

            //  var path = file.Path;
            return(new Tuple <ImageSource, string, Byte[], Stream, string>(ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                file.Dispose();
                return stream;
            }), imageName, ConvertStreamToByteArray(file.GetStream()), file.GetStream(), null));
        }
        private async void OnMySecondFavoriteAction(object obj)
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                TakePhotoFailed?.Invoke(this, new AlertEventArgs {
                    Title = "No Camera", Message = "no camera"
                });

                return;
            }

            _file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                PhotoSize          = PhotoSize.Small,
                CompressionQuality = 10,
                //CustomPhotoSize = 50,
                Directory = "Sample",
                Name      = "test.jpg"
            });

            if (_file == null)
            {
                return;
            }


            var stream = _file.GetStream();
            var bytes  = new byte[stream.Length];
            await stream.ReadAsync(bytes, 0, (int)stream.Length);

            string base64 = System.Convert.ToBase64String(bytes);

            this.PhotoSourceBaseSixtyFourEntry = base64;

            TakePhotoSucceeded?.Invoke(this, new PhotoSavedSuccessAlertEventArgs {
                Title = "File Location", Message = _file.Path
            });
            //await DisplayAlert("File Location", _file.Path, "OK");

            //_dogImage.Source = ImageSource.FromStream(() =>
            //{
            //    var stream = file.GetStream();
            //    file.Dispose();
            //    return stream;
            //});


            //or:
            //HANDLE VIA BINDING
            //_dogImage.Source = ImageSource.FromFile(_file.Path);

            this.PhotoURLEntry = _file.Path;

            //_dogImage.Source = ImageSource.FromFile(_file.Path);

            stream.Dispose();
            _file.Dispose();
        }
Exemple #22
0
        async Task MakePredictionRequest(MediaFile file)
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Prediction-Key", "e255f72dcb9b4f69917f05309ab246d2");

            string url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Prediction/f4777059-a48b-4ab0-b43f-d585c83e164e/image?iterationId=92c71ce9-4e94-4ced-a344-031e5939af17";

            HttpResponseMessage response;

            byte[] byteData = GetImageAsByteArray(file);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response = await client.PostAsync(url, content);


                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    EvaluationModel responseModel = JsonConvert.DeserializeObject <EvaluationModel>(responseString);

                    double max = responseModel.Predictions.Max(m => m.Probability);

                    TagLabel.Text = (max >= 0.5) ? "This is a photo of rice (Probability: " + max + ")." : " This is not a photo of rice (Probability: " + max + ").";

                    file.Dispose();
                }
            }
        }
Exemple #23
0
        public async Task <Tuple <ImageSource, string, Byte[], Stream, string> > PickPhoto()
        {
            if (!CrossMedia.Current.IsPickPhotoSupported)
            {
                await UserDialogs.Instance.AlertAsync("Photos Not Supported", ":( Permission not granted to take photo", "OK");

                return(new Tuple <ImageSource, string, Byte[], Stream, string>(null, ":( Permission not granted to take photo", null, null, null));
            }

            // string imageName = "Ld" + new Guid();
            MediaFile file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions()
            {
                CustomPhotoSize = 30,
                PhotoSize       = PhotoSize.Medium,
            });

            var words = file.Path.Split('/');
            var path  = words[words.Length - 1];

            return(new Tuple <ImageSource, string, Byte[], Stream, string>(ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                file.Dispose();
                return stream;
            }), path, ConvertStreamToByteArray(file.GetStream()), file.GetStream(), null));
        }
        private async void BtnApply_OnClicked(object sender, EventArgs e)
        {
            var imageArray = FilesHelper.ReadFully(file.GetStream());

            file.Dispose();
            var instructor = new Instructor()
            {
                Name         = EntName.Text,
                Language     = EntLanguage.Text,
                Nationality  = EntNationality.Text,
                Gender       = PickerGender.Items[PickerGender.SelectedIndex],
                Phone        = EntPhone.Text,
                Email        = EntEmail.Text,
                Education    = EntEducation.Text,
                Experience   = PickerExperience.Items[PickerExperience.SelectedIndex],
                HourlyRate   = PickerHourlyRate.Items[PickerHourlyRate.SelectedIndex],
                CourseDomain = PickerCourseDomain.Items[PickerCourseDomain.SelectedIndex],
                City         = PickerCity.Items[PickerCity.SelectedIndex],
                OneLineTitle = EntOneLineTitle.Text,
                Description  = EdtDescription.Text,
                ImageArray   = imageArray,
            };
            ApiService apiService = new ApiService();
            var        response   = await apiService.BecomeAnInstructor(instructor);

            if (!response)
            {
                await DisplayAlert("Oops", "Something wrong...", "Cancel");
            }
            else
            {
                await DisplayAlert("Congratulations", "You're now an instructor at teachify.", "Alright");
            }
        }
Exemple #25
0
        private async void Gravar()
        {
            Item item = new Item();

            //Secao secao = await App.DbSecao.GetSecaoAsync();

            item.Descricao = txtDescricao.Text;
            item.IDUsuario = 1;
            item.Nome      = txtNome.Text;
            decimal decValor = 0;

            if (decimal.TryParse(txtValor.Text, out decValor))
            {
                item.Valor = Convert.ToDecimal(txtValor.Text);
            }

            if (photo != null)
            {
                MemoryStream msImage = new MemoryStream();
                photo.GetStream().CopyTo(msImage);
                photo.Dispose();

                item.Imagem = msImage.ToArray();
            }
            if (await App.DbItem.SaveItemAsync(item) == 1)
            {
                await DisplayAlert("Atenção!", "Item gravado com sucesso!", "OK");

                //this.cli
            }
            else
            {
                await DisplayAlert("Atenção!", "Erro ao gravar item!", "OK");
            }
        }
Exemple #26
0
        private async void BtnApply_Clicked(object sender, EventArgs e)
        {
            var imageArray = FilesHelper.ReadFully(file.GetStream());

            file.Dispose();
            var instructor = new Instructor()
            {
                Name         = EntName.Text,
                Language     = EntLanguage.Text,
                Nationality  = EntNationality.Text,
                Gender       = PickerGender.Items[PickerGender.SelectedIndex],
                Phone        = EntPhone.Text,
                Email        = EntEmail.Text,
                Education    = EntEducation.Text,
                Experience   = PickerExperience.Items[PickerExperience.SelectedIndex],
                CourseDomain = PickerCourceDomain.Items[PickerCourceDomain.SelectedIndex],
                HourlyRate   = PickerHourlyRate.Items[PickerHourlyRate.SelectedIndex],
                City         = PickerCity.Items[PickerCity.SelectedIndex],
                OneLineTitle = EntOneLineTitle.Text,
                Description  = EntDescription.Text,
                ImageArray   = imageArray,
            };
            ApiService apiService = new ApiService();
            var        response   = await apiService.BecomeAnInstructor(instructor);

            if (!response)
            {
                await DisplayAlert("Помилка", "Щось пішло не так", "Повернутись");
            }
            else
            {
                await DisplayAlert("Вітаємо", "Ви стали викладачем", "Повернутись");
            }
        }
        private async Task <byte[]> TakePicture()
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                await NavigationManager.CurrentPage.DisplayAlert(TextResources.Camera, TextResources.NoCameraAvailable, TextResources.OkButtonText);

                return(null);
            }

            MediaFile pictureMediaFile = await CrossMedia.Current.TakePhotoAsync(
                new StoreCameraMediaOptions
            {
                AllowCropping      = true,
                SaveToAlbum        = false,
                CompressionQuality = 10,
                PhotoSize          = PhotoSize.Small
            });

            if (pictureMediaFile == null)
            {
                return(null);
            }

            Stream resStream = pictureMediaFile.GetStream();

            pictureMediaFile.Dispose();

            return(StreamToByteArray(resStream));
        }
Exemple #28
0
        async void OnTakeVideoButtonClicked(object sender, EventArgs args)
        {
            if (!Media.IsCameraAvailable ||
                !Media.IsTakeVideoSupported)
            {
                DisplayAlert("No Camera", ":( No camera available.", "OK");
                return;
            }

            MediaFile file = await Media.TakeVideoAsync(new StoreVideoOptions
            {
                Directory = "Sample",
                Name      = "test.mp4"
            });

            if (file != null)
            {
                ImageSource imageSource = ImageSource.FromStream(() =>
                {
                    var stream = file.GetStream();
                    return(stream);
                });
                Debug.WriteLine("Video File Path: {0}", file.Path);
                file.Dispose();
            }
        }
Exemple #29
0
        public async void subir_perfil()
        {
            try
            {
                string now1 = DateTime.Now.ToString().Replace(' ', '_').Replace('/', '_').Replace(':', '_');
                if (file == null)
                {
                    await DisplayAlert("Alerta", "Falta definir una foto.", "OK");
                }
                await Upload(file, "_foto_" + now1 + ".jpg");

                var foto1 = "_foto_" + now1 + ".jpg";
                foto1             = WebUtility.UrlEncode(foto1);
                foto              = foto1;
                btnNext.IsEnabled = true;
                perfil.Source     = ImageSource.FromStream(() =>
                {
                    stream = file.GetStreamWithImageRotatedForExternalStorage();
                    return(stream);
                });
                StackFoto.Children.RemoveAt(1);
                StackFoto.Children.Add(perfil);
                file.Dispose();
            }
            catch (Exception ex)
            {
            }
        }
        internal async Task <bool> SetUserProfileImageAsync(int userProfileId, MediaFile file)
        {
            bool isUploaded = false;

            // Update image on displayed form immediately.
            MyProfileImage = ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                file.Dispose();
                return(stream);
            });

            var fileInfo = new FileInfo(file.Path);

            if (IsConnected && file != null)
            {               // Save file to API/Azure.
                var stream = file.GetStream();
                UserProfilePhoto userProfilePhoto = new UserProfilePhoto()
                {
                    UserProfileId = userProfileId,
                    FileName      = fileInfo.Name,
                    Data          = stream.ToArray()
                };

                isUploaded = await DataLoader.SaveUserProfileImageAsync(userProfilePhoto);

                if (isUploaded)
                {                   // Get the thumbnail that was just created by the server API.
                    await RefreshUserProfileImageAsync(userProfileId);
                }
            }

            return(isUploaded);
        }
 public void ConstructWithManagedLifespanAndDispose()
 {
     File.Copy("image1.jpg", "temp.jpg");
     var file = new MediaFile("temp.jpg", true);
     Assert.IsTrue(File.Exists(file.FileName));
     file.Dispose();
     Assert.IsFalse(File.Exists(file.FileName));
 }
        public void ConstructAndDispose()
        {
            var file = new MediaFile("transitions.wmv");
            string filePath = Path.GetFullPath("transitions.wmv");
            Assert.AreEqual(filePath, file.FileName);
            Assert.AreEqual(7.999, file.Length);
            Assert.AreEqual(TimelineBuilder.ToUnits(7.999), file.LengthInUnits);
            Assert.AreEqual(-1, file.LengthInFrames); // not assigned till later

            file.Dispose();
            Assert.IsTrue(File.Exists("transitions.wmv"));
        }