private void Button_Click(object sender, RoutedEventArgs e) { Uri fileUri = new Uri(string.Format("Assets/{0}.webp", "unnamed"), UriKind.Relative); StreamResourceInfo res = Application.GetResourceStream(fileUri); if (res != null && res.Stream != null) { using (MemoryStream stream = new MemoryStream()) { CopyStream(res.Stream, stream); WebpComponent.WebpRuntimeComponent com = new WebpComponent.WebpRuntimeComponent(); byte[] arr = stream.GetBuffer(); var result = com.DecodeRGBA(arr, arr.Length, 128, 128); WriteableBitmap bitmap = new WriteableBitmap(128, 128); for (int i = 0; i < result.Length; i += 4) { // make the transform from color to pixel. int tranformedPixel = (result[i + 3] << 24 | result[i] << 16 | result[i + 1] << 8 | result[i + 2]); bitmap.Pixels[i / 4] = tranformedPixel; } bitmap.Invalidate(); image.Source = bitmap; } } }
private void Button_Click(object sender, RoutedEventArgs e) { Uri fileUri = new Uri(string.Format("Assets/{0}.webp", "unnamed"), UriKind.Relative); StreamResourceInfo res = Application.GetResourceStream(fileUri); if (res != null && res.Stream != null) { using (MemoryStream stream = new MemoryStream()) { CopyStream(res.Stream, stream); WebpComponent.WebpRuntimeComponent com = new WebpComponent.WebpRuntimeComponent(); byte[] arr = stream.GetBuffer(); var result = com.DecodeRGBA(arr, arr.Length, 128, 128); WriteableBitmap bitmap = new WriteableBitmap(128, 128); for (int i = 0; i < result.Length; i+=4) { // make the transform from color to pixel. int tranformedPixel = (result[i + 3] << 24 | result[i] << 16 | result[i + 1] << 8 | result[i + 2]); bitmap.Pixels[i/4] = tranformedPixel; } bitmap.Invalidate(); image.Source = bitmap; } } }