Skip to main content
 首页 » 编程设计

c#之如何将流转换为 BitmapImage

2024年01月13日30zfyouxi

我正在尝试使用以下代码将 MemoryStream 转换为 Image。

  Stream stream = new MemoryStream(bytes); 
  BitmapImage bitmapImage = new BitmapImage(); 
  await bitmapImage.SetSourceAsync(stream.AsRandomAccessStream()); 

但是在SetSourceAsync方法中抛出异常,异常是

System.Exception was unhandled by user code HResult=-2003292336 Message=The component cannot be found. (Exception from HRESULT: 0x88982F50) Source=mscorlib StackTrace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificat ion(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at ImageEditor_UWP.MainPage.d__1.MoveNext() InnerException:

如何将流转换为图像?

请您参考如下方法:

图片:

public async static System.Threading.Tasks.Task<BitmapImage> ImageFromBytes(byte[] bytes) 
{ 
    var image = new BitmapImage(); 
 
    try 
    { 
        var stream = new Windows.Storage.Streams.InMemoryRandomAccessStream(); 
        await stream.WriteAsync(bytes.AsBuffer()); 
        stream.Seek(0); 
        await image.SetSourceAsync(stream); 
    } 
    catch (Exception ex) 
    { 
        System.Diagnostics.Debug.WriteLine(ex.Message); 
    } 
 
    return image; 
}