Если это файл BMP, он не должен быть таким сложным.
Сначала вы читаете заголовок из файла, если я правильно помню, это 44 байта, но вы можете узнать это из поиска в сети спецификации.
Заголовок содержит информацию, такую как количество байтов на пиксель, общую ширину и высоту, сколько байтов на строку сканирования. Обычно растровое изображение хранится в перевернутом виде, поэтому вы должны рассчитать, где в файле был первый пиксель нижней строки, и перейти к этому месту. Затем вы читаете нужные пиксели из этой строки и переходите к правильному пикселю на следующей строке.
Класс FileStream
имеет то, что вам нужно; Read
метод для чтения и Seek
метод для перехода к заданной позиции.