Я должен прочитать файл .bmp, а затем изменить его на основе аргументов командной строки.
Примеры:
-от x, где x указывает самую нижнюю строку для обработки
-torow x, где x указывает самую верхнюю строку для обработки
-fromcol x, где x указывает крайний левый столбец для обработки
-tocol x, где x указывает самый правый столбец для обработки
-op x, где x является одним из следующих
- 1 = пороговое значение изображения (любое значение пикселя в указанном диапазоне свыше 127 изменяется на t0 255, а значение пикселя 127 или менее изменяется на 0)
- 2 = отрицательный (любое значение пикселя p в указанном диапазоне изменяется на 255-p)
Мне дали этот код в качестве примера чтения файла .bmp:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp= fopen("sample.bmp", "r+");
if (fp == NULL){
printf("Error");
}
int temp=0;
//Go to Byte 22
fseek(fp,22,SEEK_SET);
//Read byte 22 into an integer variable
fread(&temp, sizeof(int), 1, fp);
printf("Number of Rows: %d\n", temp);
fseek(fp,18,SEEK_SET);
fread(&temp, sizeof(int), 1, fp);
printf("Number of Columns: %d\n", temp);
fseek(fp,10,SEEK_SET);
fread(&temp, sizeof(int), 1, fp);
printf("Start of Pixels: %d\n", temp);
fclose (fp);
}
Что такое «Старт пикселей»? Я полагаю, что я каким-то образом перебираю байты изображения и копирую их в 2D-массив ... но я не знаю suntax для доступа к файлам байтов?
Я даже не знаю, с чего начать с точки зрения изменения изображения ...: / Я в растерянности.
Любая помощь / совет / linfo / ссылки будет принята с благодарностью.
Заранее спасибо.