Это то, что у меня есть в конвертере WPF для обработки байтов в BitmapFrame, и он отлично работает:
var imgBytes = value as byte[];
if (imgBytes == null)
return null;
using (var stream = new MemoryStream(imgBytes))
{
return BitmapFrame.Create(stream,
BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
}
Также его потокобезопасен, как я использовал его в Task.Run и раньше.