gpt4 book ai didi

c# - 为什么我使用 SetBitmapAsync() 会出现这样的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:54 24 4
gpt4 key购买 nike

我是 UWP 应用开发的新手,正在尝试构建图像处理应用。我正在使用 https://msdn.microsoft.com/en-us/windows/uwp/audio-video-camera/imaging 中的代码但是我有这样的异常(exception):SoftwareBitmapSource::SetBitmapAsync 仅支持具有正宽度/高度、bgra8 像素格式和预乘或无 alpha 的 SoftwareBitmap。在代码中 await source.SetBitmapAsync(sbitmap); 我想知道这种方法是否真的有这么多限制,如果有的话,如果有任何替代方法,我应该使用限制最少的方法。代码片段如下

FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
fileOpenPicker.FileTypeFilter.Add(".jpg");
fileOpenPicker.ViewMode = PickerViewMode.Thumbnail;

var inputFile = await fileOpenPicker.PickSingleFileAsync();
if(inputFile != null)
{
SoftwareBitmap sbitmap;
using (IRandomAccessStream stream = await inputFile.OpenAsync(FileAccessMode.Read))
{
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
sbitmap = await decoder.GetSoftwareBitmapAsync();
}
var source = new SoftwareBitmapSource();
await source.SetBitmapAsync(sbitmap);
**Exception--->**imageControl.Source = source;
}

最佳答案

这是一个已知问题。现在,您可以通过使用 SoftwareBitmap.Convert 获取 Bgra8 预乘 SoftwareBitmap 来显示

SoftwareBitmap displayableImage = SoftwareBitmap.Convert(sbitmap, BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);

关于c# - 为什么我使用 SetBitmapAsync() 会出现这样的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com