这是我的代码...
public async Task SetLargeImageAsync(byte[] imageBytes,
bool storeBytesInObject = false)
{
var tcs = new TaskCompletionSource<string>();
SmartDispatcher.BeginInvoke(() =>
{
using (MemoryStream ms = new MemoryStream(imageBytes))
{
if (storeBytesInObject)
this.LargeImageBytes = imageBytes;
BitmapImage image = new BitmapImage();
image.SetSource(ms);
this.LargeImage = image;
tcs.SetResult(string.Empty);
}
});
await tcs.Task;
}
我正在将字节发送到流中。这很好用;它正在显示图像。
但有时我会遇到以下异常:
图像标题无法识别。(HRESULT 异常:0x88982F61)在 MS.Internal.XcpImports.BitmapSource_SetSource(BitmapSource bitmapSource, CValue& byteStream) 在 System.Windows.Media.Imaging.BitmapSource.SetSourceInternal(Stream streamSource) 的 MS.Internal.XcpImports.CheckHResult(UInt32 hr)在 System.Windows.Media.Imaging.BitmapImage.SetSourceInternal(流流源) 在 System.Windows.Media.Imaging.BitmapSource.SetSource(流流源)
问题是什么?不同类型的图像有什么问题吗?
我发现某处我们应该使用以下代码来寻找起始位置:
ms.Seek(0, SeekOrigin.Begin)
这是真的吗?解决方案是什么?