//function definition
void ImageRead(AnsiString name,int &width,int &height,int *r,int *g,int *b)
{
//read image
FILE *fp;
if((fp=fopen(name.c_str(),"rb"))==NULL) {
printf("cannot open bmp.name\n");
return ;
}
fread(&bfType,sizeof(WORD),1,fp);
if(bfType!=0x4d42) {//该值必需是0x4D42,也就是字符'BM'
printf("the input map is not bmp type");
return ;
}
fread(&bfSize,sizeof(DWORD),1,fp);
fread(&bfReserved1,sizeof(WORD),1,fp);
fread(&bfReserved2,sizeof(WORD),1,fp);
fread(&bfOffBits,sizeof(DWORD),1,fp);
fread(&bih,sizeof(BITMAPINFOHEADER),1,fp);
width=bih.biWidth ;
height=bih.biHeight;
if(width % 4 !=0)
width=width+ (4-width % 4);
DWORD size=width*(bih.biBitCount/8)*height;
unsigned char* pData=new unsigned char[size];
fread(pData,size,1,fp);
int bmWidthBytes=width*bih.biBitCount /8;
int bmBitsPixel=bih.biBitCount ;
int nBit=bmBitsPixel/8;
int z;
for (int y=0; y<height; y++)
{
for (int x=0; x<width; x++)
{
z=height-y-1;
*(r+(y*width+x))=pData[x*nBit+2+z*bmWidthBytes];
*(g+(y*width+x))=pData[x*nBit+1+z*bmWidthBytes];
*(b+(y*width+x))=pData[x*nBit+z*bmWidthBytes];
}
}
}
void ImageWrite(AnsiString name1,int *r,int *g,int *b)
{
//read image
FILE *fw;
fw=fopen(name1.c_str(),"wb");
fwrite(&bfType,sizeof(WORD),1,fw);
fwrite(&bfSize,sizeof(DWORD),1,fw);
fwrite(&bfReserved1,sizeof(WORD),1,fw);
fwrite(&bfReserved2,sizeof(WORD),1,fw);
fwrite(&bfOffBits,sizeof(DWORD),1,fw);
fwrite(&bih,sizeof(BITMAPINFOHEADER),1,fw);
int width=bih.biWidth ;
int height=bih.biHeight;
if(width % 4 !=0)
width=width+ (4-width % 4);
DWORD size=width*(bih.biBitCount/8)*height;
unsigned char* pData=new unsigned char[size];
int bmWidthBytes=width*bih.biBitCount /8;
int bmBitsPixel=bih.biBitCount ;
int nBit=bmBitsPixel/8;
int z;
for (int y=0; y<height; y++)
{
for (int x=0; x<width; x++)
{
z=height-y-1;
pData[x*nBit+2+z*bmWidthBytes]=*(r+(y*width+x));
pData[x*nBit+1+z*bmWidthBytes]=*(g+(y*width+x));
pData[x*nBit+z*bmWidthBytes]=*(b+(y*width+x));
}
}
fwrite(pData,size,1,fw);
}
image-read.zip_像素开始位置
版权申诉
116 浏览量
2022-09-22
21:15:29
上传
评论
收藏 892B ZIP 举报
邓凌佳
- 粉丝: 65
- 资源: 1万+
最新资源
- STC15单片机串口2使用程序例子
- 读取日志的excel生成周报 用python3开发weekplan-master.zip
- python 读取excel数据导入dbimport-data-master.zip
- K折交叉验证BP神经网络,多输入多输出BP神经网络(代码完整,数据齐全)
- B07训练原图.zip
- python-对Excel数据处理做可视化分析.zip
- 人工智能大作业-无人机图像目标检测的python源代码+文档说明.zip
- 基于GoogLeNet实现Cifar-10图像分类项目python源码(高分项目).zip
- 数据库 sql 面试题目及答案解析.docx
- 汽车常见 10 种传感器故障后的表现与解决措施.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈