protected override IImageSource FromFileImpl(string path, int?quality = 75) { return(new UwpImageSourceImpl(Path.GetFileName(path), () => { var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); return stream.AsRandomAccessStream(); }, (int)quality)); }
private async Task TakePicture(string conversID) { if (!WebcamService.IsInitialized) { await WebcamService.InitializeCameraAsync(); await WebcamService.StartCameraPreviewAsync(); } using (var stream = new InMemoryRandomAccessStream()) { ImageEncodingProperties imgFormat = ImageEncodingProperties.CreatePng(); // create storage file in local app storage StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync( "AdaPhotoTMP.png", CreationCollisionOption.ReplaceExisting); // take photo await WebcamService.MediaCapture.CapturePhotoToStorageFileAsync(imgFormat, file); FileStream fileStream = new FileStream(file.Path, FileMode.Open); Stream streamFinal = fileStream.AsRandomAccessStream().AsStream(); StringConstructorSDK client = new StringConstructorSDK() { WebAppUrl = $"{ AppConfig.WebUri}" }; try { var activity = new Activity { From = new ChannelAccount("Jean"), Text = "Picture from UWP", Type = ActivityTypes.Message, //Envoyer le stream ChannelData = await client.PictureAnalyseAsync(AppConfig.Vision, streamFinal), //ATTENTION CONVERSID DIFFERENT!!!!! Name = conversID, //Summary = serviceUrl }; await _client.Conversations.PostActivityAsync(_conversation.ConversationId, activity); } catch (HttpRequestException) { //Impossible to take picture } } }
//OCR Function public static async Task <OcrResult> MyFunction(string fileURL) { var ocrEngine = OcrEngine.TryCreateFromLanguage(new Windows.Globalization.Language("en-us")); if (ocrEngine == null) { throw new InvalidOperationException("engine was null"); } FileStream imageStream = File.Open(fileURL, FileMode.Open); var decoder = await BitmapDecoder.CreateAsync(imageStream.AsRandomAccessStream()); var softwareBitmap = await decoder.GetSoftwareBitmapAsync(); var ocrResult = await ocrEngine.RecognizeAsync(softwareBitmap); imageStream.Dispose(); return(ocrResult); }