System.ArgumentException: «Параметр не является действительным» поток памяти в изображение - PullRequest
0 голосов
/ 18 марта 2020

Я проверил другие вопросы StackOverflow, но, похоже, ни один из них не помогает, так как большинство из них работают с «base64string», это не поможет мне, потому что мой байт [] кодируется с помощью Windows -1252.

Моя проблема:

Я использую сканер штрих-кода для создания изображения, я использую Encoding.GetEncoding("Windows-1252").GetString(e.Buffer)). e - это DataaReceivedEventArgs, и он дает мне байтовый массив.

Я должен преобразовать его в строку, потому что мне нужно вырезать некоторые части из ответа, который должен выполнить этот шаг.

Затем я использую Encoding.GetEncoding("Windows-1252").GetBytes(response) для преобразования его в ByteArray.

Затем я просто создаю MemoryStream и использую его в Image.FromStream(ms). Проблема в том, что он РАБОТАЕТ в первый раз без проблем. Но после второго раза это дает мне исключение неверного параметра.

  byte[] bBytes = await responseZuBytesArray();

            using (MemoryStream ms = new MemoryStream(bBytes))
            {
                pcbBildAnzeige.SizeMode = PictureBoxSizeMode.StretchImage;
                pcbBildAnzeige.Image = Image.FromStream(ms);
            }

            tIsStarted = false;

Я попытался установить Положение MemoryStream, попытался сначала преобразовать его в Растровое изображение. Я так много пытался, но я думаю, что есть кое-что простое, я просто не вижу, поэтому я спрашиваю здесь

1 Ответ

0 голосов
/ 18 марта 2020

Попробуйте преобразовать байтовый массив, используя класс System.Drawing.ImageConverter;

Bitmap bitmap = (Bitmap)new System.Drawing.ImageConverter().ConvertFrom(bBytes);
...