我应该读入一个 .bmp 文件,然后根据命令行参数对其进行更改。
示例:
-fromrow 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);
}
什么是“像素起点”?我想我以某种方式遍历图像的字节并将它们复制到二维数组中......但我不知道访问文件字节的 suntax?
我什至不知道在改变图像方面从哪里开始......:/我不知所措。任何帮助/建议/linfo/链接将不胜感激。
先感谢您。