求用C++编一个程序,能在控制台上通过字符显示同文件夹下的.bmp位图每一个像素点
想在vs2012环境下编程,注意是通过字符模式来显示图片,不是切换到图形模式或者使用窗体程序,要求能够浏览同一个文件夹下所有的图片,而不是只能用输入名字的方式浏览。思路如...
想在vs2012环境下编程,注意是通过字符模式来显示图片,不是切换到图形模式或者使用窗体程序,要求能够浏览同一个文件夹下所有的图片,而不是只能用输入名字的方式浏览。
思路如下:
1.先要得到文件夹下所有的.bmp图片文件名称,(dir *.bmp>1.txt),先生成一个txt文件,再将txt文件中的位图名提取出来。
2.利用24位位图图像的存储原理(每个像素用三个字节表示,分别是绿,红,蓝三色的值,文件头+像素数据)。
3.位图中像素信息的获得。
4.近似色彩的表示(用SetConsoleTextAttribute函数)。
5.彩色到灰度图像的转换。
6.灰度与字符的对应关系。
实在不想做的话写个详细的思路也好啊~~求大神 展开
思路如下:
1.先要得到文件夹下所有的.bmp图片文件名称,(dir *.bmp>1.txt),先生成一个txt文件,再将txt文件中的位图名提取出来。
2.利用24位位图图像的存储原理(每个像素用三个字节表示,分别是绿,红,蓝三色的值,文件头+像素数据)。
3.位图中像素信息的获得。
4.近似色彩的表示(用SetConsoleTextAttribute函数)。
5.彩色到灰度图像的转换。
6.灰度与字符的对应关系。
实在不想做的话写个详细的思路也好啊~~求大神 展开
3个回答
2013-12-17
展开全部
//读取文件的函数
int readBmp(char *bmpName)
{
FILE *fp=fopen(bmpName,"rb");//fp指向文件的开头
if(fp==NULL)
{
return 0;
}
else
{
fseek(fp, sizeof(BITMAPFILEHEADER),0); //以0为基准,偏移文件头个字节,fp指向此处,即信息头
BITMAPINFOHEADER head; //定义信息头结构变量
fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); //head指向读取出的信息头
bmpWidth = head.biWidth; //图像的宽度
bmpHeight = head.biHeight; //图像的高度
biBitCount = head.biBitCount; //每像素的位数
int lineByte=(bmpWidth * biBitCount/8+3)/4*4;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)
//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=new char[lineByte * bmpHeight]; //图象数据指针,pBmpBuf指向实际的图象数据
fread(pBmpBuf,1,lineByte * bmpHeight,fp);
fclose(fp);//关闭文件
return 1;//读取文件成功
}
}
int readBmp(char *bmpName)
{
FILE *fp=fopen(bmpName,"rb");//fp指向文件的开头
if(fp==NULL)
{
return 0;
}
else
{
fseek(fp, sizeof(BITMAPFILEHEADER),0); //以0为基准,偏移文件头个字节,fp指向此处,即信息头
BITMAPINFOHEADER head; //定义信息头结构变量
fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); //head指向读取出的信息头
bmpWidth = head.biWidth; //图像的宽度
bmpHeight = head.biHeight; //图像的高度
biBitCount = head.biBitCount; //每像素的位数
int lineByte=(bmpWidth * biBitCount/8+3)/4*4;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)
//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=new char[lineByte * bmpHeight]; //图象数据指针,pBmpBuf指向实际的图象数据
fread(pBmpBuf,1,lineByte * bmpHeight,fp);
fclose(fp);//关闭文件
return 1;//读取文件成功
}
}
展开全部
boost filesystem
boost gil
不要用windows api
boost gil
不要用windows api
追问
能说具体一点么。。我是初学者。
追答
有本书叫
boost程序库完全开发指南 你下载pdf格式 里面有对boost filesystem的详细介绍 文件路径这块应当够用了
至于bmp .... 其实bmp格式和txt格式实际上差不多 很容易转换的 随便百度一下就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询