你可以通過BitmapDecoder和PixelDataProvider得到文件流pxiel數據:
Windows.Storage.Streams.IRandomAccessStream random = await Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/StoreLogo.png")).OpenReadAsync();
Windows.Graphics.Imaging.BitmapDecoder decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(random);
Windows.Graphics.Imaging.PixelDataProvider pixelData = await decoder.GetPixelDataAsync();
byte[] buffer = pixelData.DetachPixelData();
然後,你可以從字節數組通過不安全的代碼
unsafe
{
fixed (byte* p = buffer)
{
IntPtr ptr = (IntPtr)p;
// do you stuff here
}
}
得到的IntPtr如果編譯不安全的代碼,你需要在項目的構建屬性中啓用允許不安全代碼選項。
一個'IntPtr'什麼? 'BitmapImage'實例?像素數據?還有別的嗎? – IInspectable
我想獲得一個IntPtr從指針地址。 (圖像在存儲器中定位的像素地址)。因此,我可以逐像素地使用它 –