Байтовый массив для исключения изображения - PullRequest
0 голосов
/ 11 ноября 2018

У меня проблемы с преобразованием байтового массива в изображение обычными методами, например:

using (var ms = new MemoryStream(byteArrayIn))
{
    return Image.FromStream(ms); ->exception
}

и

System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
Image img = (Image)converter.ConvertFrom(ImgInBytes); -> exception 

Исключение Параметр недействителен

Более того, я использовал 4-байтовую длину массива, которая была инициирована нулевым значением.

он должен был показать черное изображение, но это не

1 Ответ

0 голосов
/ 11 ноября 2018

я использовал 4-байтовую длину массива, которая была инициирована нулевым значением.

API ожидает допустимый поток изображений; 4 байта со значением ноль не допустимый поток изображения. Метод будет проверять поток, пытаясь идентифицировать формат изображения (потоки в целом сопоставимы с файлами, за исключением случаев, когда отсутствует какое-либо понятие имени файла) - он не просто ищет пиксельные данные. Это означает, что он будет искать заголовок изображения , который он распознает (например, png всегда начинается со байтовых значений 137 80 78 71 13 10 26 10); как только он определил формат, он захочет декодировать заголовок изображения (размеры, глубину цвета, возможно, палитру и т. д.), а затем наконец могут быть некоторые пиксельные данные - или нет, если это не пиксельный формат (это может быть векторный формат изображения). Так; есть много больше, чем просто пиксельные данные.

Если вам нужно черное изображение: возможно, начните с Bitmap - возможно, посмотрите этот ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...