Ich mache Bilder mit meiner Kamera und wenn OnPictureTaken aufgerufen wird, bekomme ich ein Byte [] Daten. Ich versuche, das Byte-Array zu einem System.IO.Stream zu konvertieren. Dies hilft mir, das Bild in der Project Oxford API zu analysieren. Ich habe es auf unzählige Arten versucht, aber es scheint, dass ich keine Lösung finden kann. Ich wäre sehr dankbar, wenn Sie mir helfen würden.Bild als Byte-Array zu Stream
Antwort
Sie können die MemoryStream
Klasse verwenden, die einen Strom durch ein Byte-Array gesichert erstellt: MSDN link
Wenn die Client SDK verwenden, wich man über NuGet bekommen können, benötigen Sie einen Stream
zu Methoden wie VisionServiceClient.AnalyzeImageAsync()
bereitzustellen.
Sie können eine Stream
aus einem byte[]
erstellen und an das SDK wie folgt liefern:
using (var stream = new MemoryStream(yourByteArray))
{
var visionServiceClient = new VisionServiceClient("YOUR_API_KEY");
var visualFeatures = new VisualFeature[] { VisualFeature.Adult, VisualFeature.Categories, VisualFeature.Color, VisualFeature.Description, VisualFeature.Faces, VisualFeature.ImageType, VisualFeature.Tags };
var result = await visionServiceClient.AnalyzeImageAsync(stream, visualFeatures);
}
Hinweis: In Android Sie oft mit einem Android.Graphics.Bitmap
Objekt am Ende, wenn die Arbeit mit Bildern. Vor allem beim Fotografieren mit der Kamera. Sie können sie auch in Streams mit imageBitmap.Compress(Bitmap.CompressFormat.Jpeg, 0, stream);
konvertieren, aber vergessen Sie nicht, den Stream mit stream.Seek(0, SeekOrigin.Begin);
zurückzuspulen, sonst wird das SDK eine Ausnahme auslösen.
Sie könnten das Byte-Array in den Stream schreiben, aber nicht in einen Stream konvertieren. Post nur eine dieser "unzähligen Möglichkeiten", die Sie versucht haben. Und lies auch [Ask] und nimm die [Tour] – Plutonix
@Plutonix System.IO.Stream stream = new MemoryStream(); stream.Write (Daten, 0, data.Length); –
Mögliches Duplikat von [Wie konvertiere ich byte \ [\], um in C# zu streamen?] (Http://stackoverflow.com/questions/4736155/how-do-i-convert-byte-to-stream-in-c) – Jason