Проводник Windows отображает все сжатые BMP-файлы как 32-битные, в отличие от их фактической глубины в битах.
Я не знаю, это ошибка или нет, но я немного ближе, чтобы назвать это ошибкой.
Потому что;после создания файла BMP 8bpp с вашим кодом, когда я открывал файл с помощью двоичного редактора, в структуре заголовка растрового изображения я увидел, что значение поля бит на пиксель (блоки 28-29) было 8
, как и должно быть.Кроме того, следующий байт 01
(смещение 30) означает, что данные, сжатые с помощью кодирования по длине прогона , который представляет собой простой алгоритм сжатия данных без потерь.
Таким образом, я могу сказать, что нет проблем с изображением, которое вы создали с помощью Magick.NET, это, конечно, файл BMP-образа 8bpp, но сжатый.
В отличие от настроек по умолчанию в Magick.NET, Paint.NET создает несжатые BMP-файлы, поэтому вы видите разную глубину в битах из-за странности Windows Explorer.
Чтобы это исправить, вы можете отключитьсжатие, поэтому значение битовой глубины, отображаемое в диалоговом окне свойств, будет ожидаемым значением.
image.Settings.Compression = CompressionMethod.NoCompression;
byte[] result = image.ToByteArray(MagickFormat.Bmp);