ComputerVisionClient Error or Bug - ReadInStreamAsync method: 'Invalid URI format' in Xamarin.Forms

Offen
#307 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
csharp

Rechercherichtung

Im Issue wird keine Repository-Datei oder kein Test genannt; beginne mit dem Aufruf von ComputerVisionClient.ReadInStreamAsync in Xamarin.Forms und dem gemeldeten Wert von stream.Name. Reproduziere den Invalid URI-Fehler mit dem bereitgestellten MediaPicker-Stream und überprüfe anschließend, dass OCR das Bild liest und Text zurückgibt, ohne die Ausnahme auszulösen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)
Minimal steps to reproduce

I am capturing a photo and opening a stream using Xamarin.Essentials 1.7 MediaPicker built into Essentials.
When I call the ReadInStreamAsync(stream) method in Computer Vision Client, I get an error and my Xamarin.Forms app breaks inside the method: 'Invalid URI: The format of the URI could not be determined.'
This is the stream.Name value - '/data/user/0/com.companyname.xamphotoappdemo2/cache/2203693cc04e0be7f4f024d5f9499e13/198fd32db9cc4be38a493325974fa138/d964251252fc4963aca94339d73a8007.jpg'

var stream = await file.OpenReadAsync();

chosenImage.Source = ImageSource.FromStream(() => stream);

// 2. Add OCR logic.

var client = Authenticate(ApiSettings.subscriptionKey, ApiSettings.endpoint);

var text = await client.ReadInStreamAsync(stream);

//after the request, get the operation location
string operationLocation = text.OperationLocation;

//we only need the operation ID, not the whole URL
const int numberOfCharsInOperationId = 36;
string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);

//Get the ocr read results
ReadOperationResult results;
do
{
results = await client.GetReadResultAsync(Guid.Parse(operationId));
}
while ((results.Status == OperationStatusCodes.Running || results.Status == OperationStatusCodes.NotStarted));

var readResults = results.AnalyzeResult.ReadResults;

var expirationDates = from page in readResults
from line in page.Lines
where line.Text.Contains("EXPIRES") && line.Words.Count == 4
select line.Words[3].Text;

expirationDate.Text = expirationDates.ToString();

Any log messages given by the failure
Expected/desired behavior

The text should be read in from the image and display on the Xaml page control.

OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)

Versions
Mention any other details that might be useful

Thanks! We'll be in touch soon.

Vorherrschende Sprache
Jupyter Notebook
Sterne
388
Forks
553
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Azure-Samples/cognitive-services-quickstart-code

Alle Issues in Azure-Samples/cognitive-services-quickstart-code

Ähnliche Issues

Weitere Issues zu Computer Vision

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.