Параметр недопустим. Ошибка изображения из потока

#image #base64 #memorystream

#изображение #base64 #memorystream

Вопрос:

 public Image DecodeImage ( string _EncodedImage )
{
  byte[] _ByteArray = System . Convert . FromBase64String ( _EncodedImage );
  MemoryStream _MemoryStream = new MemoryStream ( _ByteArray , 0 , _ByteArray . Length );
  _Image = Image . FromStream ( _MemoryStream );
  return _Image;
}
  

Параметр недопустим.

* Обратите внимание, я пытался:

  • Image _Image = new Bitmap ( _MemoryStream )
  • _MemoryStream . Seek ( 0 , SeekOrigin . Begin );
  • Bitmap _Bitmap = (Bitmap)Image.FromStream(_MemoryStream , true, false);

И получил ту же ошибку

Комментарии:

1. Я использую аналогичный фрагмент, который я получил из этого поста

Ответ №1:

Скорее всего, массив не представляет допустимые данные изображения.

Посмотрите _ByteArray (в отладчике или распечатайте его) и посмотрите, что у вас получилось. Если что-то выглядит не так, возможно, сохраните двоичные данные в файл и посмотрите, как на это отреагирует редактор изображений.

(кстати, вам не нужно сообщать MemoryStream о длине вашего массива байтов, если только вы не хотите использовать только часть массива. ... = new MemoryStream (_ByteArray) все в порядке)