Использование C# и Visual Stud ios
Я пытаюсь найти документацию о кодировании 8-битных изображений в градациях серого, но никакие исследования не привели к получению какой-либо информации. Когда мы конвертируем файл bmp (созданный с принудительной глубиной 8 бит) с одним черным пикселем в байтовый массив и отображаем его. Он печатает данные 1 КБ. Это не имеет смысла, и нет онлайн-документации по форматированию 8bpp с заголовками и отступами и т. Д. c.
Почему это 1 КБ для одного пикселя? Как это закодировано? Мы совершаем фундаментальную ошибку?
// Function to convert image types to byte arrays
public static byte[] ImageToByte(System.Drawing.Image img)
{
System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
// Print bytes to console
int iterationCount = 1;
foreach (byte element in convertedBitmap)
{
Console.WriteLine(element + ": Byte " + iterationCount);
iterationCount++;
}
// Import image from file
System.Drawing.Image squarePic = System.Drawing.Image.FromFile("C:/.../8bitBlack.bmp");
// Convert image to bitmap
Bitmap myBitmap = new Bitmap(squarePic);
Bitmap clone = myBitmap.Clone(new System.Drawing.Rectangle(0, 0, myBitmap.Width, myBitmap.Height), System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
// Set color pallette of bitmap
ColorPalette palette = clone.Palette;
for (int i = 0; i < 256; i++)
palette.Entries[i] = System.Drawing.Color.FromArgb(i, i, i);
clone.Palette = palette;
// Convert image to byte array
byte[] convertedBitmap = ImageToByte(clone);