Beispiel #1
0
        private async Task NewMethod()
        {
            ScanImage.SetValue(IsVisibleProperty, true);

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

                    return;
                }
                else
                {
                    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                    {
                        Directory   = "Sample",
                        Name        = "test.jpg",
                        SaveToAlbum = true,
                    });

                    if (file == null)
                    {
                        return;
                    }

                    if (ScanImage != null)
                    {
                        ScanImage.Source = ImageSource.FromStream(() =>
                        {
                            var stream = file.GetStream();
                            file.Dispose();
                            return(stream);
                        });
                        //  mainSTack.IsVisible = false;
                    }
                }

                var scan = new ZXingScannerPage();
                await Navigation.PushAsync(scan);

                scan.OnScanResult += (result) =>
                {
                    ZXing.BarcodeFormat barcodeFormat = result.BarcodeFormat;
                    string type = barcodeFormat.ToString();
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await Navigation.PopAsync();

                        VinEnteredNumber.Text = result.Text;
                    });
                };
            }catch (Exception ex)
            {
                await DisplayAlert("Alert", " " + ex, "OK");
            }
        }
Beispiel #2
0
        private async void OcrMethodCall()
        {
            ScanImage.SetValue(IsVisibleProperty, true);
            try
            {
                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await DisplayAlert("No Camera", ":( No camera available.", "OK");

                    return;
                }
                else
                {
                    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                    {
                        Directory   = "Sample",
                        Name        = "test.jpg",
                        SaveToAlbum = true,
                    });

                    if (file == null)
                    {
                        return;
                    }

                    if (ScanImage != null)
                    {
                        //lblImagePath.Text = "ImagePath" + file.Path;
                        byte[] testByte = CommonFunctions.ReadStream(file.GetStream());
                        ////////////////////////////
                        var client      = new HttpClient();
                        var queryString = HttpUtility.ParseQueryString(string.Empty);

                        // Request headers
                        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "de7609da413944308cde16098d1097f0");

                        var uri = "https://centralus.api.cognitive.microsoft.com/vision/v2.0/ocr" + queryString;

                        HttpResponseMessage response;

                        // Request body
                        // byte[] byteData = Encoding.UTF8.GetBytes("{testByte}");

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

                            var contents = response.Content.ReadAsStringAsync().Result;
                            Debug.WriteLine("OCR response " + contents);
                        }

                        var responseResult = await response.Content.ReadAsStringAsync();


                        ocrModel = JsonConvert.DeserializeObject <OcrModel>(responseResult);
                        var           wordCount  = Convert.ToString(ocrModel.regions[0].lines[0].words.Count);
                        StringBuilder numberList = new StringBuilder();
                        for (int i = 0; i < ocrModel.regions[0].lines[0].words.Count; i++)
                        {
                            numberList.Append(ocrModel.regions[0].lines[0].words[i].text);
                            numberList.Append(" ");
                        }
                        VinEnteredNumber.Text = numberList.ToString();

                        Debug.WriteLine("Car Numebr  " + numberList.ToString());

                        //////////////////////////////
                        ScanImage.Source = ImageSource.FromStream(() =>
                        {
                            var stream = file.GetStream();
                            file.Dispose();
                            return(stream);
                        });
                        //  mainSTack.IsVisible = false;
                    }
                }
            }
            catch (Exception ex) {
                await DisplayAlert("Alert", " " + ex, "OK");
            }
        }
Beispiel #3
0
 private void RadioButton_Clicked_DirectInput(object sender, EventArgs e)
 {
     ScanImage.SetValue(IsVisibleProperty, false); // the view is GONE, not invisible
     VinEnteredNumber.Text = null;
     VinNumber             = VinEnteredNumber.Text;
 }