using System;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Graphics.Imaging;
using Windows.Storage;
using Windows.Storage.Streams;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;
private async void GetContent()
{
uintstartX = 100;
uintstartY = 100;
uintheight = 300;
uint width= 300;
StorageFile image1 = awaitStorageFile.GetFileFromApplicationUriAsync(newUri("ms-appx:///image/test1.jpg"));
using(IRandomAccessStream stream1 = awaitimage1.OpenAsync(FileAccessMode.Read))
{
BitmapDecoder decoder = awaitBitmapDecoder.CreateAsync(stream1);
byte[] pixels = awaitGetPixelData(decoder, startX, startY, width, height,decoder.PixelWidth, decoder.PixelHeight);
WriteableBitmapwriteableBitmap = new WriteableBitmap((int)width,(int)height);
Stream pixStream =writeableBitmap.PixelBuffer.AsStream();
pixStream.Write(pixels, 0,(int)(width * height * 4));
this.msiImage.Source =writeableBitmap;
}
}
private async Task GetPixelData(BitmapDecoderdecoder, uint startPointX, uint startPointY, uint width, uintheight, uint scaledWidth, uint scaledHeight)
{
BitmapBounds bounds = new BitmapBounds();
bounds.X =startPointX;
bounds.Y =startPointY;
bounds.Height = height;
bounds.Width = width;
BitmapTransform transform = new BitmapTransform();
transform.Bounds = bounds;
transform.ScaledWidth = scaledWidth;
transform.ScaledHeight = scaledHeight;
// Get thecropped pixels within the bounds of transform.
PixelDataProvider pix = awaitdecoder.GetPixelDataAsync(BitmapPixelFormat.Bgra8,BitmapAlphaMode.Straight,
transform,
ExifOrientationMode.IgnoreExifOrientation,ColorManagementMode.ColorManageToSRgb);
byte[]pixels = pix.DetachPixelData();
returnpixels;
}