C语言实现Bmp文件的读入和剪裁
来源:互联网 发布:企业进出口数据查询 编辑:程序博客网 时间:2024/05/24 01:37
将一幅1280*1024的图像进行读入和居中剪裁
读入 0.bmp 文件,生成 1.bmp 文件
#define X_Source 1280#define Y_Source 1024#define X_SIZE 640#define Y_SIZE 512#define Win_X 320#define Win_Y 256#include<stdio.h>int image_read(unsigned char bitHead[54],unsigned char color[1024],unsigned char *data,char *filename){FILE *fp;fp = fopen(filename,"rb");if(fp == NULL) return -1;else{fread(bitHead,1,54,fp);fread(color,1,1024,fp);fread(data, (size_t)X_SIZE,(size_t)Y_SIZE,fp);fclose(fp);return 0;}}void SaveBmp(char* filename,unsigned char *data,int x_size,int y_size){int i;unsigned char color[1024]; unsigned int size ; unsigned short head[27]; FILE* fp;for(i=0;i<1024;i++){if(i%4==3)color[i]=0xff;elsecolor[i]=i/4;}color[396]=145,color[397]=44;color[398]=238; size = x_size*y_size+54+1024; head[0]=0x4D42; head[1]=size%0x10000; head[2]=size/0x10000; head[3]=0; head[4]=0; head[5]=0x436; head[6]=0; head[7]=0x28; head[8]=0; head[9]=x_size%0x10000; head[10]=x_size/0x10000; head[11]=y_size%0x10000; head[12]=y_size/0x10000; head[13]=0x1; head[14]=0x08; head[15]=0; head[16]=0; head[17]=0; head[18]=0; head[19]=0; head[20]=0; head[21]=0; head[22]=0; head[23]=0x100; head[24]=0; head[25]=0x100; head[26]=0; fp=fopen(filename,"wb"); if(!fp)return; fwrite(head,1,sizeof(head),fp);fwrite(color,1,1024,fp); fwrite(data,x_size,y_size,fp); fclose(fp);}void imwindow(unsigned char pic[Y_Source][X_Source],unsigned char picinv[Y_SIZE][X_SIZE]){int i,j,a,b;for(i=0;i<X_SIZE;i++){picinv[0][i]=0;}for(i=1;i<Y_SIZE;i++){picinv[i][0]=0;picinv[i][X_SIZE-1]=0;}for(i=1;i<Y_SIZE;i++)for(j=1;j<X_SIZE-1;j++){a=i+Win_Y;b=j+Win_X;picinv[i][j]=pic[a][b];}/*for(i=1;i<Y_SIZE;i++)for(j=1;j<X_SIZE-1;j++){picinv[i][j]=pic[X_SIZE-j-1][i];}*/}void main(){unsigned char imagein[Y_Source][X_Source];unsigned char imageout[Y_SIZE][X_SIZE];unsigned char bitHead[54];unsigned char color[1024];image_read(bitHead,color,imagein,"0.bmp");imwindow(imagein,imageout);SaveBmp("1.bmp",imageout,X_SIZE,Y_SIZE);}
0 0
- C语言实现Bmp文件的读入和剪裁
- C语言实现raw格式图像的读入和存取
- 数字图像处理--BMP文件的读入和保存
- 数字图像处理--BMP文件的读入和保存
- C语言实现的BMP和JPEG图片的解码
- c++/c的文件读入和字符串读入总结
- 用C语言实现将一个文件读入内存中
- RandomAccessFile实现文件的读入和写入
- C 语言生成BMP 文件
- 解析bmp文件(C语言)
- C语言读写BMP文件
- BMP文件操作C语言
- c语言读取bmp文件
- C语言生成BMP文件
- BMP文件学习笔记(一): C/C++语言实现.bmp文件读写
- C语言读入文件全部内容的方法(文本文件)
- C语言读入全都的文件内容2
- 用动态内存读入任意大小的文件(c语言)
- 黑马程序员—正则表达式
- SSH 解说
- 嘛是 Spine?
- 【Swift】中的一些关键字
- 蔡力能心得4
- C语言实现Bmp文件的读入和剪裁
- log4j 和slf4j的比较
- Memcached客户端(memcached-Java-client)与 Spring集成(单服务器)
- leetcode: Unique Paths
- test
- 你是一名努力工作的程序员,还是懒惰的程序员?
- mysql改密码遇到的一些问题
- Eclipse常见问题解决方法
- 基本语言细节--C++标准库输入输出流之Manipulators