当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

请高手指点如何用C语言读一个bmp格式的图像

更新:02-16 整理:39baobao.com
字体:

[如何用c语言编写一个n阶方阵求逆的程序]Rational ** Matrix1::inverse_matrix(Rational ** sourceMatrix,int numberOfRows, int numberOfColumns) { determinant temp1; Rational temp = temp1.result(sourceMatr...+阅读

C/C++ code#include#include#pragma pack(2)/*定义WORD为两个字节的类型*/ typedef unsigned short WORD;/*定义DWORD为e四个字节的类型*/ typedef unsigned long DWORD;/*位图文件头*/ typedef struct BMP_FILE_HEADER { WORD bType; /* 文件标识符 */ DWORD bSize; /* 文件的大小 */ WORD bReserved1; /* 保留值,必须设置为0 */ WORD bReserved2; /* 保留值,必须设置为0 */ DWORD bOffset; /* 文件头的最后到图像数据位开始的偏移量 */ } BMPFILEHEADER;/*位图信息头*/ typedef struct BMP_INFO { DWORD bInfoSize; /* 信息头的大小 */ DWORD bWidth; /* 图像的宽度 */ DWORD bHeight; /* 图像的高度 */ WORD bPlanes; /* 图像的位面数 */ WORD bBitCount; /* 每个像素的位数 */ DWORD bCompression; /* 压缩类型 */ DWORD bmpImageSize; /* 图像的大小,以字节为单位 */ DWORD bXPelsPerMeter; /* 水平分辨率 */ DWORD bYPelsPerMeter; /* 垂直分辨率 */ DWORD bClrUsed; /* 使用的色彩数 */ DWORD bClrImportant; /* 重要的颜色数 */ } BMPINF;/*彩色表*/ typedef struct RGB_QUAD { WORD rgbBlue; /* 蓝色强度 */ WORD rgbGreen; /* 绿色强度 */ WORD rgbRed; /* 红色强度 */ WORD rgbReversed; /* 保留值 */ } RGBQUAD; int main() { FILE *fp; BMPFILEHEADER fileHeader; BMPINF infoHeader; long offset, bmpImageSize, width, height, bytesPerPixel, size, bitCount;// int i, j;// unsigned char **p; WORD c; if((fp = fopen("5.bmp", "rb")) == NULL) { printf("Cann't open the file!\n"); exit(0); } fseek(fp, 0, 0); fread(&fileHeader, sizeof(fileHeader), 1, fp); fread(&infoHeader, sizeof(infoHeader), 1, fp); //计算并输出位图数据的偏移量,图像的大小,宽度和高度,每个像素点所占的字节 size = fileHeader.bSize; offset = fileHeader.bOffset; bmpImageSize = infoHeader.bmpImageSize; width = infoHeader.bWidth; height = infoHeader.bHeight; bitCount = infoHeader.bBitCount; bytesPerPixel = infoHeader.bBitCount / 8; printf("%d %d %d %d %d %d\n", size, offset, bmpImageSize, width, height, bitCount, bytesPerPixel); //输出每个像素点所占字节中的内容 c = fgetc(fp); while (!feof(fp)) { printf("%x ", c); c = fgetc(fp); } printf("\n"); fclose(fp); return 0; }

本文地址:https://www.39baobao.com/show/29_41917.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

一个C语言编程题目请高手指点可以参考以下:1.程序分析: 2.程序源代码: #definenmax50 main() { inti,k,m,n,num[nmax],*p; printf("pleaseinputthetotalofnumbers:"); scanf("%d",&n); p=num; for(i=0;i *(p+i)...

如何用C语言读写文件一个c语言读写文件程序: #include "stdio.h" #include <stdlib.h> main() { FILE *fp1;//定义文件流指针,用于打开读取的文件 FILE *fp2;//定义文件流指针,用于打开写操作的文件 ch...

如何用C语言求10000的阶乘哪位高手能给点思路#include"stdio.h"#include"string.h"#includeint main(){ char n[10]; int a[20000]={0},b[20000]={0},c[20000]={0},temp; int i,j,k,len; printf("请输入阶乘数:"); scanf("%s",&n);/*...

如何用C语言编一个归并排序的程序#include "MergeSort.h"#includeusing namespace std;MergeSort::MergeSort(vector_list, int _len){ list.push_back(0); link.push_back(0); for (int i=0; ilen = _len;}//...

如何用C语言编写一个求两个矩阵相乘的结果/* Matrix_main.cpp */ // #include #include #include #include /* #include */ void main(void) { int col, row, row_s; /* the column & row of the matrix */ int **pM...

如何用c语言画函数图像/*----------------------------------------- 正弦曲线 -----------------------------------------*/ #include #include #define NUM 1000 #define TWOPI (2 * 3.14159)...

如何用C语言输出文件1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fsc...

如何用C语言编写一个软件1. 如果要写记分牌 最好使用的工具 visual studio 2010(推荐)微软官网有 可以下载中文版。 2. 如果只用c语言的话, 就要用win32 api编写。 简介: 1. C语言是一门通用计算机编程...

C语言基础题 c语言高手请进main() { double a=?; double b=?; double c=? double x; doublet delta; delta = b*b-4*a*c if(delta < 0) { printf("无解!\n"); } else if(fabs(delta-1e-20)<0.0) { x=(-b+sq...