fileOpenPickerが何らかの理由で実行されていないため、変数inputFileはnullのままです。この関数は以前は完全に機能していましたが、ファイルエクスプローラーを開いて画像を選択させてくれました。何がそのように動作するのかわかりません
public async void Initiate_Matrix()
{
FileOpenPicker fileOpenPicker = new FileOpenPicker
{
SuggestedStartLocation = PickerLocationId.PicturesLibrary
};
fileOpenPicker.FileTypeFilter.Add(".tif");
var inputFile = await fileOpenPicker.PickSingleFileAsync();
if (inputFile == null)
{
// The user cancelled the picking operation
return;
}
using (IRandomAccessStream stream = await inputFile.OpenAsync(FileAccessMode.Read))
{
// Create the decoder from the stream
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
PixelDataProvider pixelData = await decoder.GetPixelDataAsync();
var bytes = pixelData.DetachPixelData();
var a = decoder.PixelWidth;
var b = decoder.PixelHeight;
Color[,] array = new Color[a, b];
for (int x = 0; x < decoder.PixelWidth; x++)
{
for (int y = 0; y < decoder.PixelHeight; y++)
{
var location = (y * (int)decoder.PixelWidth + x) * 3;
Color color = Color.FromArgb(0, bytes[location + 0], bytes[location + 1], bytes[location + 2]);
array[x, y] = color;
}
}
matrix = array;
}
}