だから私が基本的にしようとしているのは、URLからあらゆるタイプの画像(png、jpgなど...)を読み取り、その純粋なピクセルデータを取得できるようにすることです。これまでのところ、私はこのコードを持っています。
public static async Task<BitmapImage> DownloadImageFromWebsiteAsync(string url)
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
using (WebResponse response = await request.GetResponseAsync())
{
Stream imageStream = response.GetResponseStream();
using (var result = new MemoryStream())
{
await imageStream.CopyToAsync(result);
byte[] array = result.ToArray();
return await ByteArrayToBitmapImage(array);
}
}
}
catch (WebException ex)
{
Debug.WriteLine(ex.Message);
return null;
}
}
private static async Task<BitmapImage> ByteArrayToBitmapImage(byte[] byteArray)
{
var bitmapImage = new BitmapImage();
var stream = new InMemoryRandomAccessStream();
await stream.WriteAsync(byteArray.AsBuffer());
stream.Seek(0);
bitmapImage.SetSource(stream);
return bitmapImage;
}
jpeg などのエンコーディングのため、純粋な byte[] をピクセルとして取得することはできません。URLから画像をダウンロードし、デコードし、ピクセルバッファを取得する方法はあるのだろうかと思っていました。助けていただければ幸いです。ありがとうございました。