WriteAsync() public method

public WriteAsync ( [ buffer ) : uint>.IAsyncOperationWithProgress
buffer [
return uint>.IAsyncOperationWithProgress
Example #1
0
        public static async Task <byte[]> TranscodeImageFile(WriteableBitmap wb)
        {
            using (var ras = wb.PixelBuffer.AsStream().AsRandomAccessStream())
            {
                System.Diagnostics.Debug.WriteLine("1");
                BitmapDecoder decoder = await BitmapDecoder.CreateAsync(ras);

                System.Diagnostics.Debug.WriteLine("2");
                var memStream = new Windows.Storage.Streams.InMemoryRandomAccessStream();
                System.Diagnostics.Debug.WriteLine("3");
                BitmapEncoder encoder = await BitmapEncoder.CreateForTranscodingAsync(memStream, decoder);

                encoder.BitmapTransform.ScaledWidth  = 320;
                encoder.BitmapTransform.ScaledHeight = 240;

                System.Diagnostics.Debug.WriteLine("4");
                await encoder.FlushAsync();

                System.Diagnostics.Debug.WriteLine("5");
                var outbuff = new byte[memStream.Size];
                System.Diagnostics.Debug.WriteLine("6");
                await memStream.WriteAsync(outbuff.AsBuffer());

                System.Diagnostics.Debug.WriteLine("7");
                return(outbuff);
            }
        }
Example #2
0
        public async Task<byte[]> ConvertToGrayScale(byte[] imageBytes, int height, int width)
        {
            using (InMemoryRandomAccessStream rasStream = new InMemoryRandomAccessStream())
            {
                await rasStream.WriteAsync(imageBytes.AsBuffer());
                var decoder = await BitmapDecoder.CreateAsync(rasStream);
                var pixelData = await decoder.GetPixelDataAsync();
                var pixels = pixelData.DetachPixelData();

                if (_filter == null)
                    _filter = new ImageFilter();

                await _filter.ToGrayScale(pixels.AsBuffer());

                BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, rasStream);
                encoder.SetPixelData(decoder.BitmapPixelFormat, BitmapAlphaMode.Ignore, (uint)width, (uint)height, decoder.DpiX, decoder.DpiY, pixels);
                await encoder.FlushAsync();

                using (BinaryReader br = new BinaryReader(rasStream.AsStreamForRead()))
                {
                    rasStream.Seek(0);
                    return br.ReadBytes((int)rasStream.AsStreamForRead().Length);
                }
            }
        }
        public async Task Should_produce_read_bytes_hash(int bufferSize)
        {
            var data = CryptographicBuffer.GenerateRandom(2048);

            var expected = HashAlgorithmProvider
                .OpenAlgorithm(HashAlgorithmNames.Sha256)
                .HashData(data);

            using (var file = new InMemoryRandomAccessStream())
            {
                await file.WriteAsync(data);
                file.Seek(0);

                var buffer = WindowsRuntimeBuffer.Create(bufferSize);

                using (var hashed = new HashedInputStream(file))
                {
                    for (var i = 0; i < 8; i++)
                    {
                        await hashed.ReadAsync(
                            buffer, buffer.Capacity);
                    }

                    var hash = hashed.GetHashAndReset();
                    Assert.Equal(expected.ToArray(), hash.ToArray());
                }
            }
        }
Example #4
0
        /// <summary>
        /// Decrypts the specified input stream.
        /// </summary>
        /// <param name="input">The input stream.</param>
        /// <param name="masterKey">The master key.</param>
        /// <param name="masterSeed">The master seed.</param>
        /// <param name="encryptionIV">The encryption initialization vector.</param>
        /// <returns>The decrypted buffer.</returns>
        /// <exception cref="ArgumentNullException">
        /// The <paramref name="input"/>, <paramref name="masterSeed"/>, <paramref name="masterKey"/>
        /// and <paramref name="encryptionIV"/> cannot be <c>null</c>.
        /// </exception>
        public static async Task<IInputStream> Decrypt(IRandomAccessStream input,
            IBuffer masterKey, IBuffer masterSeed, IBuffer encryptionIV)
        {
            if (input == null) throw new ArgumentNullException("input");
            if (masterSeed == null) throw new ArgumentNullException("masterSeed");
            if (masterKey == null) throw new ArgumentNullException("masterKey");
            if (encryptionIV == null) throw new ArgumentNullException("encryptionIV");

            var sha = HashAlgorithmProvider
                .OpenAlgorithm(HashAlgorithmNames.Sha256)
                .CreateHash();

            sha.Append(masterSeed);
            sha.Append(masterKey);

            var seed = sha.GetValueAndReset();
            var aes = SymmetricKeyAlgorithmProvider
                .OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7)
                .CreateSymmetricKey(seed);

            var buffer = WindowsRuntimeBuffer.Create(
                (int)(input.Size - input.Position));
            buffer = await input.ReadAsync(buffer, buffer.Capacity);
            buffer = CryptographicEngine.Decrypt(aes, buffer, encryptionIV);

            var stream = new InMemoryRandomAccessStream();
            await stream.WriteAsync(buffer);
            stream.Seek(0);

            return stream;
        }
Example #5
0
 public static async Task<InMemoryRandomAccessStream> ConvertToInMemoryStream(byte[] arr)
 {
     var randomAccessStream = new InMemoryRandomAccessStream();
     await randomAccessStream.WriteAsync(arr.AsBuffer());
     randomAccessStream.Seek(0);
     await randomAccessStream.FlushAsync(); // TODO: don't sure it's needed
     return randomAccessStream;
 }
		private async void mjpeg_FrameReady(object sender, FrameReadyEventArgs e)
		{
			InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream();
			await stream.WriteAsync(e.FrameBuffer);
			stream.Seek(0);
			_bmp.SetSource(stream);
			image.Source = _bmp;
		}
Example #7
0
 /// <summary>
 /// 将Stream转换成IRandomAccessStream
 /// </summary>
 /// <param name="stream"></param>
 /// <returns></returns>
 public static async Task<IRandomAccessStream> ToRandomAccessStream(this Stream stream)
 {
     var buffer = CryptographicBuffer.CreateFromByteArray(stream.GetBytes());
     InMemoryRandomAccessStream inme = new InMemoryRandomAccessStream();
     await inme.WriteAsync(buffer);
     inme.Seek(0);
     return inme;
 }
        public static async Task<IRandomAccessStream> AsRandomAccessStreamAsync(this byte[] array)
        {
            var stream = new InMemoryRandomAccessStream();
            await stream.WriteAsync(array.AsBuffer());
            stream.Seek(0);

            return stream;
        }
Example #9
0
		private async void client_ColorFrameReady(object sender, ColorFrameData e)
		{
			InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream();
			await stream.WriteAsync(e.PixelBuffer);
			stream.Seek(0);
			_colorBitmap.SetSource(stream);
			this.Color.Source = _colorBitmap;
		}
 public void SetSource(byte[] bytes)
 {
     var ms = new InMemoryRandomAccessStream();
     ms.WriteAsync(bytes.AsBuffer());
     ms.FlushAsync().AsTask().Wait();
     ms.Seek(0);
     bitmap = new BitmapImage();
     bitmap.SetSource(ms);
 }
 public static async Task<BitmapImage> AsBitmapImageAsync(this IBuffer @this)
 {
     var img = new BitmapImage();
     using (var stream = new InMemoryRandomAccessStream())
     {
         await stream.WriteAsync(@this);
         stream.Seek(0);
         await img.SetSourceAsync(stream);
     }
     return img;
 }
Example #12
0
		public static async Task<BitmapImage> ByteArrayToBitmapImageAsync(byte[] byteArray)
		{
			var bitmapImage = new BitmapImage();

			var stream = new InMemoryRandomAccessStream();
			await stream.WriteAsync(byteArray.AsBuffer());
			stream.Seek(0);

			bitmapImage.SetSource(stream);
			return bitmapImage;
		}
Example #13
0
        public async Task Headers_should_detect_not_supported_files()
        {
            using (var file = new InMemoryRandomAccessStream())
            {
                await file.WriteAsync(
                    CryptographicBuffer.GenerateRandom(1024));

                file.Seek(0);
                var result = await FileFormat.Headers(file);

                Assert.Null(result.Headers);
                Assert.Equal(FileFormats.NotSupported, result.Format);
            }
        }
        public async Task Should_detect_corrupt_data()
        {
            using (var input = new InMemoryRandomAccessStream())
            {
                await CopyData(input, "IO.HashedBlockStream.bin");

                input.Seek(200);
                await input.WriteAsync(CryptographicBuffer.GenerateRandom(8));

                input.Seek(0);
                await Assert.ThrowsAsync<InvalidDataException>(
                    () => HashedBlockFileFormat.Read(input));
            }
        }
Example #15
0
        public async Task Headers_should_detect_1x_file_format()
        {
            using (var file = new InMemoryRandomAccessStream())
            {
                await file.WriteAsync(CryptographicBuffer
                    .DecodeFromHexString("03D9A29A65FB4BB5"));

                file.Seek(0);
                var result = await FileFormat.Headers(file);

                Assert.Null(result.Headers);
                Assert.Equal(FileFormats.KeePass1x, result.Format);
            }
        }
Example #16
0
        public async Task Headers_should_detect_new_format()
        {
            using (var file = new InMemoryRandomAccessStream())
            {
                // Schema: 4.01
                await file.WriteAsync(CryptographicBuffer
                    .DecodeFromHexString("03D9A29A67FB4BB501000400"));

                file.Seek(0);
                var result = await FileFormat.Headers(file);

                Assert.Null(result.Headers);
                Assert.Equal(FileFormats.NewVersion, result.Format);
            }
        }
        public static BitmapImage AsBitmapImage(this byte[] byteArray)
        {
            if (byteArray != null)
            {
                using (var stream = new InMemoryRandomAccessStream())
                {
                    stream.WriteAsync(byteArray.AsBuffer()).GetResults(); // I made this one synchronous on the UI thread; this is not a best practice.
                    var image = new BitmapImage();
                    stream.Seek(0);
                    image.SetSource(stream);
                    return image;
                }
            }

            return null;
        }
Example #18
0
        public static ImageSource ToImage(this byte[] self)
        {
            if (self == null)
                return null;

            if (self.Length == 0)
                return null;

            var stream = new InMemoryRandomAccessStream();
            stream.WriteAsync(self.AsBuffer()).AsTask().Wait();
            stream.Seek(0);
            
            var myImage = new BitmapImage();
            myImage.SetSource(stream);

            return myImage;
        }
Example #19
0
 public static async Task<string> ParseTextAsync()
 {
     try
     {
         using (var memoryStream = new MemoryStream())
         using (var memoryRandomAccessStream = new InMemoryRandomAccessStream())
         {
             await Task.Run(() => SaveScreenshot(memoryStream));
             await memoryRandomAccessStream.WriteAsync(memoryStream.ToArray().AsBuffer());
             return await RunOcr(memoryRandomAccessStream);
         }
     }
     finally
     {
         GC.Collect(0);
     }
 }
Example #20
0
        public async Task SaveBitmapAsync(string albumFolder, uint size, string songPath)
        {
            var songFile = await StorageFile.GetFileFromPathAsync(songPath);

            using (var thumbnail = await songFile.GetThumbnailAsync(ThumbnailMode.MusicView, size) ??
                                   await songFile.GetThumbnailAsync(ThumbnailMode.VideosView, size))
            {
                if (thumbnail == null)
                    return;

                var reader = new DataReader(thumbnail);
                var fileLength = (uint)thumbnail.Size;
                await reader.LoadAsync(fileLength);

                var buffer = reader.ReadBuffer(fileLength);

                var memStream = new InMemoryRandomAccessStream();

                await memStream.WriteAsync(buffer);
                await memStream.FlushAsync();
                memStream.Seek(0);

                await ApplicationData.Current.LocalFolder.CreateFolderAsync(AlbumArtFolderName(albumFolder), CreationCollisionOption.OpenIfExists);

                var albumArtFileName = AlbumArtFileName(albumFolder, size);
                var outputFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(albumArtFileName, CreationCollisionOption.ReplaceExisting);

                // http://social.msdn.microsoft.com/Forums/windowsapps/en-US/1dda3a15-d299-40e0-b668-ec690a683f6e/how-to-resize-an-image-as-storagefile?forum=winappswithcsharp
                var decoder = await BitmapDecoder.CreateAsync(memStream);
                var transform = new BitmapTransform { ScaledHeight = size, ScaledWidth = size };
                var pixelData = await decoder.GetPixelDataAsync(
                    BitmapPixelFormat.Rgba8,
                    BitmapAlphaMode.Straight,
                    transform,
                    ExifOrientationMode.RespectExifOrientation,
                    ColorManagementMode.DoNotColorManage);

                using (var destinationStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
                {
                    BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, destinationStream);
                    encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Premultiplied, size, size, 96, 96, pixelData.DetachPixelData());
                    await encoder.FlushAsync();
                }
            }
        }
Example #21
0
        private async System.Threading.Tasks.Task <bool> WriteWAVHeader()
        {
            if (internalStream != null)
            {
                byte[] buffer = this.CreateWAVHeaderBuffer((uint)(CD_RAW_SECTOR_SIZE * (EndSector - StartSector)));
                if (buffer != null)
                {
                    uint l = await internalStream.WriteAsync(buffer.AsBuffer());

                    if (l == buffer.Length)
                    {
                        WriteDataIndex = l;
                        return(true);
                    }
                }
            }
            return(false);
        }
 private async Task LoadImages(IList<ContactModel> contacts)
 {
     foreach (var contact in contacts)
     {
         var bytes = await Controllers.MyContactsController.GetImage(contact.Email);
         if (bytes != null && bytes.Length > 0)
         {
             using (var stream = new InMemoryRandomAccessStream())
             {
                 await stream.WriteAsync(bytes.AsBuffer());
                 var image = new BitmapImage();
                 stream.Seek(0);
                 image.SetSource(stream);
                 contact.Thumbnail = image;
             } 
         }
     }
 }
        /// <summary>
        /// Load the images as a BitmapImage object asyncronously
        /// </summary>
        /// <returns>The as user interface image.</returns>
        /// <param name="Item">Item.</param>
        public static async Task<BitmapImage> ImageAsBitmapAsync(this Gravatar Item)
        {

            if (Item != null && Item.Image != null)
            {
                using (var stream = new InMemoryRandomAccessStream())
                {

                    await stream.WriteAsync(Item.Image.AsBuffer());

                    var image = new BitmapImage();
                    stream.Seek(0);
                    image.SetSource(stream);
                    return image;
                }
            }

            return null;

        }
Example #24
0
        public async Task<BitmapImage> GetFromUrl(string url)
        {
            var color = Color.FromArgb((byte)_random.Next(255), (byte)_random.Next(255), (byte)_random.Next(255), (byte)_random.Next(255));
            byte[] pxl = new byte[4 * 80 * 80];
            for (int i = 0; i < pxl.Length; i += 4)
            {
                pxl[i + 0] = color.B;
                pxl[i + 1] = color.G;
                pxl[i + 2] = color.R;
                pxl[i + 3] = color.A;
            }

            using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
            {
                var image = new BitmapImage();
                await stream.WriteAsync(pxl.AsBuffer());
                stream.Seek(0);
                image.SetSource(stream);
                return image;
            }
        }
Example #25
0
        private async void DownloadAndScale(string outfileName, string downloadUriString)
        {
             Uri downLoadingUri = new Uri(downloadUriString);
             var client = new HttpClient();
    
            using (var response = await client.GetAsync(downLoadingUri))
            {
                var buffer = await response.Content.ReadAsBufferAsync();
                var memoryStream = new InMemoryRandomAccessStream();
                await memoryStream.WriteAsync(buffer);
                await memoryStream.FlushAsync();
                var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(memoryStream);

                var pixelProvider = await decoder.GetPixelDataAsync();



                var localFolder = Windows.Storage.KnownFolders.PicturesLibrary;

                var scaledFile = await localFolder.CreateFileAsync(outfileName, CreationCollisionOption.GenerateUniqueName);
             
                using (var scaledFileStream = await scaledFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite))
                {


                    var encoder = await Windows.Graphics.Imaging.BitmapEncoder.CreateAsync( BitmapEncoder.JpegEncoderId, scaledFileStream);
                    var pixels = pixelProvider.DetachPixelData();
                    encoder.SetPixelData(
                        decoder.BitmapPixelFormat,
                        decoder.BitmapAlphaMode,
                        decoder.PixelWidth,
                        decoder.PixelHeight,
                        decoder.DpiX,
                        decoder.DpiY,
                        pixels
                        );
                    await encoder.FlushAsync();
                }
            }
        }
        public override async void OnAppearing()
        {
            base.OnAppearing();

            this.IsBusy = true;

            var dialog = Database.Instance().GetDialog(dialogId);
            var opponentId =
                dialog.OccupantIds.Split(',').Select(Int32.Parse).First(id => id != App.QbProvider.UserId);
            privateChatManager = App.QbProvider.GetXmppClient().GetPrivateChatManager(opponentId, dialogId);
            privateChatManager.MessageReceived += OnMessageReceived;

            DialogName = dialog.Name;

            ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/privateholder.png"));

            this.opponentUsers = new List<User>();
            var users = await App.QbProvider.GetUsersByIdsAsync(dialog.OccupantIds);
            var opponentUser = users.FirstOrDefault(u => u.Id != App.QbProvider.UserId);
            if (opponentUser != null)
            {
                this.opponentUsers.Add(opponentUser);
                if (opponentUser.BlobId.HasValue)
                {
                    var bytes = await App.QbProvider.GetImageAsync(opponentUser.BlobId.Value);
                    BitmapImage image = new BitmapImage();
                    using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
                    {
                        await stream.WriteAsync(bytes.AsBuffer());
                        stream.Seek(0);
                        await image.SetSourceAsync(stream);
                    }
                }
            }

            await this.LoadMessages();

            this.IsBusy = false;
        }
Example #27
0
        /// <summary>
        /// loads the character image as BitmapImage
        /// </summary>
        /// <param name="charID">the character ID</param>
        /// <param name="size">the size of the image - needs to be an exponent of two!</param>
        /// <returns>the character image</returns>
        static async private System.Threading.Tasks.Task<BitmapImage> FetchImage(string charID, int size)
        {
            // build request string and load image data
            string url = "https://image.eveonline.com/Character/" + charID + "_" + size.ToString() + ".jpg";
            byte[] contentBytes = await new HttpClient().GetByteArrayAsync(url);

            // stream image data and store in bitmap image
            InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream();
            await stream.WriteAsync(contentBytes.AsBuffer());
            stream.Seek(0);

            BitmapImage image = new BitmapImage();
            image.SetSource(stream);

            return image;
        }
        private async void LoadData() {
            //load existing data
            
            HttpWebRequest getrequest = (HttpWebRequest)HttpWebRequest.Create("http://mythingapi.azurewebsites.net/api/MyThings");

            getrequest.Method = "GET";
            getrequest.ContentType = "application/json;charset=utf-8";
            var data = await getrequest.GetResponseAsync();
            Stream mystream = data.GetResponseStream();
            StreamReader sr = new StreamReader(mystream);
            string returnval = sr.ReadToEnd();
            existItemList = JsonConvert.DeserializeObject<List<MyThingObj>>(returnval);
            
            if (existItemList.Count > 0)
            {
                this.Frame.DataContext = existItemList[0];
                id.Text = existItemList[0].id.ToString();
                itemName.Text = existItemList[0].name != null ? existItemList[0].name : string.Empty;
                //rfid.Text = existItemList[0].rfid!=null? existItemList[0].rfid:string.Empty;
                type.Text = existItemList[0].type != null ? existItemList[0].type:string.Empty;
                Location.Text = "Location: " + existItemList[0].location;
                if (existItemList[0].image != null)
                { 
                    BitmapImage img = new BitmapImage();
                    using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
                    {
                        await stream.WriteAsync(existItemList[0].image.AsBuffer());
                        stream.Seek(0);
                        await img.SetSourceAsync(stream);
                    }
                    image.Source = img as ImageSource;
                }
            }
        }
        public async Task<BitmapImage> ImgSrcFromBytes(byte[] bytes)
        {
            if (bytes == null || bytes.Length == 0) return null;
            


            using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
            {
                await stream.WriteAsync(bytes.AsBuffer(0, bytes.Length));
                stream.Seek(0);

                BitmapImage image = new BitmapImage();

                await image.SetSourceAsync(stream);
               // this.CurrentImage.Source = image;
                return image;
            }
        }
Example #30
0
        /// <summary>
        /// 异步从网络下载图片
        /// </summary>
        /// <param name="outfileName">下载保存到本地的图片文件名</param>
        /// <param name="downloadUriString">图片uri</param>
        /// <param name="scaleSize">图片尺寸</param>
        /// <returns></returns>
        public static async Task DownloadAndScale(string outfileName, string downloadUriString, Size scaleSize)
        {
            try
            {
                Uri downLoadingUri = new Uri(downloadUriString);//创建uri对象
                HttpClient client = new HttpClient();//实例化httpclient对象
                using (var response = await client.GetAsync(downLoadingUri))
                {
                    var buffer = await response.Content.ReadAsBufferAsync();//从返回的数据中读取buffer
                    var memoryStream = new InMemoryRandomAccessStream();
                    await memoryStream.WriteAsync(buffer);//将buffer写入memorystream
                    await memoryStream.FlushAsync();//刷新
                    var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(memoryStream);//解密文件流
                    //确定图片大小
                    var bt = new Windows.Graphics.Imaging.BitmapTransform();
                    bt.ScaledWidth = (uint)scaleSize.Width;
                    bt.ScaledHeight = (uint)scaleSize.Height;
                    //得到像素数值
                    var pixelProvider = await decoder.GetPixelDataAsync(
                        decoder.BitmapPixelFormat, decoder.BitmapAlphaMode, bt,
                        ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.ColorManageToSRgb);


                    //下面保存图片
                    // Now that we have the pixel data, get the destination file
                    var localFolder = ApplicationData.Current.LocalFolder;
                    //var resultsFolder = await localFolder.CreateFolderAsync("Results", CreationCollisionOption.OpenIfExists);
                    var scaledFile = await localFolder.CreateFileAsync(outfileName, CreationCollisionOption.ReplaceExisting);
                    using (var scaledFileStream = await scaledFile.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        var encoder = await BitmapEncoder.CreateAsync(
                            BitmapEncoder.JpegEncoderId, scaledFileStream);
                        var pixels = pixelProvider.DetachPixelData();
                        encoder.SetPixelData(
                            decoder.BitmapPixelFormat,
                            decoder.BitmapAlphaMode,
                            (uint)scaleSize.Width,
                            (uint)scaleSize.Height,
                            decoder.DpiX,
                            decoder.DpiY,
                            pixels
                            );
                        await encoder.FlushAsync();
                    }
                }
            }
            catch (Exception) { Debug.WriteLine("工具,图片异常"); }
        }
            /// <summary>
            /// Helper that produces the contents corresponding to a Uri.
            /// Uses the C# await pattern to coordinate async operations.
            /// </summary>
            /// <param name="uri"></param>
            /// <returns></returns>
            private async Task<IInputStream> GetContentAsync(Uri uri)
            {
                string path = uri.AbsolutePath;
                string contents;

                switch (path)
                {
                    case "/default.html":
                        contents = await MainPage.LoadStringFromPackageFileAsync("stream_example.html");
                        contents = contents.Replace("%", Windows.ApplicationModel.Package.Current.Id.Name);
                        break;

                    case "/stream.css":
                        contents = "p { color: blue; }";
                        break;

                    default:
                        throw new Exception($"Could not resolve URI \"{uri}\"");
                }

                // Convert the string to a stream.
                IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(contents, BinaryStringEncoding.Utf8);
                var stream = new InMemoryRandomAccessStream();
                await stream.WriteAsync(buffer);
                return stream.GetInputStreamAt(0);
            }
Example #32
-1
        private async static  void UriSourcePropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
                Debug.WriteLine("我被触发了");
                StorageCachedImage image = d as StorageCachedImage;
                string i = e.NewValue as string;
                int k = i.IndexOf("image");
                string imagePath = i.Substring(k + 7);
                string uri = App.Uri + "public/images/" + imagePath;
                Debug.WriteLine(uri);
              
             
                Uri imageUri = new Uri(uri);

                HttpClient client = new HttpClient();
                var response = await client.GetAsync(imageUri);
                var buffer = await response.Content.ReadAsBufferAsync();
                var memoryStream = new InMemoryRandomAccessStream();
                await memoryStream.WriteAsync(buffer);
                await memoryStream.FlushAsync();
             
                await image.SetSourceAsync(memoryStream);
              
            

        }