0

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;
    }
}
4

0 に答える 0