当前位置:首页 » 编程语言 » c语言bmp是什么意思
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言bmp是什么意思

发布时间: 2022-07-04 13:22:43

A. 用c语言分析bmp文件属性

BMP文件是图形文件,用系统自带的图像查看就可以了.

B. 以C语言编写的BMP文件和以C++编写的BMP文件区别是什么

没有区别,BMP只是一个文件后缀名罢了,但都是以二进制方式存放在硬盘
-物联网校企联盟技术部

C. c语言怎么判断文件是.bmp文件

unsignedchar*pix=newunsignedchar[bm.widthpiexl*bm.height];SetBitmapPiex(bitmap,bm.widthpiexl*bm.height,pix);这样子便可以得到图像的像素参数,存放在pix数组内,BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板.我们需要做的是,新建PIX文件后,用WINHEX打开,准备好模板文件,提取BMP中的颜色信息,粘贴到PIX文件的头文件中,然后保存即可.可以用ddraw.h读详细资料请看msdn,希望能帮到你。

D. C语言 BMP文件

BMP格式文件是位图,里面保存的是像素点的红\绿\蓝三原色的亮度,并没有保存什么特定的图形,所以BMP文件不能直接读取出特定图形的个数.
当然通过图形识别技术,也是可以识别出直线,圆等几何信息.
文字识别技术可以识别出其中包含的文字信息
脸部识别技术可以识别出人脸部的特征信息.
这些算法都比较复杂.都是不能直接识别的.

当然也有能直接读出特定图形的文件格式,这些格式统称矢量图,比如.dwg(AutoCAD), .dxf, .wmf等.
其文件内容就是记录图片的什么地方有什么图形.

E. C语言 读取并显示bmp图像文件

打开.bmp有两种方法,
一种是读数据而已,对数据操作,再送回.bmp文件中.
第二种你想在C中看到图片,那就麻烦啦,你要中断10H功能键.然后读进来,而且不可以读太大的图片,要读太大的图片还要考虑扩充内存的问题.

要是你只是想用C的程序去打开一个.bmp图片,而图片不是在C中显示,而是用别的图片浏览工具的话,哈哈~~刚刚找了挺久的,没找到答案,要是你找到了尽快告诉我。我Q313208612

F. C语言:BMP图像

此程序的入口点为MainTask_Init,即平台起来后会先调用这个函数,这个函数的工作:
1、首先调用 registerDVBKeycodeCallback函数,把MainmenuKeyProcess作为函数指针传递进去,这样,当有按键按下时平台会回调这个函数;
2、创建一个消息队列,用于容纳按键消息,同时把队列的ID返回给Test_queueID,方便后续访问
3、最后启动消息泵函数demoTask,这个函数负责处理Test_queueID指向的消息队列的消息。
整篇文章没有看到任何跟BMP处理相关的信息,不知道你说的位图处理跟这个程序有啥关系。。。

G. 如何用C语言编程来显示一个bmp文件(要源码 最好有注释 谢谢)

c语言读bmp文件的话,需要你理解bmp文件格式,这个你可以自己去网络一下,我这里有个在vc中实现的源码。

#include<windows.h>
#include<stdio.h>
#include<string.h>
#include<malloc.h>
unsignedchar*pBmpBuf;//读入图像数据的指针
intbmpWidth;//图像的宽
intbmpHeight;//图像的高
RGBQUAD*pColorTable;//颜色表指针
intbiBitCount;//图像类型,每像素位数
boolreadBmp(char*bmpName)
{
//二进制读方式打开指定的图像文件
FILE*fp=fopen(bmpName,"rb");
if(fp==0)return0;
//跳过位图文件头结构BITMAPFILEHEADER
fseek(fp,sizeof(BITMAPFILEHEADER),0);
//定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中
BITMAPINFOHEADERhead;
fread(&head,sizeof(BITMAPINFOHEADER),1,fp);
//获取图像宽、高、每像素所占位数等信息
bmpWidth=head.biWidth;
bmpHeight=head.biHeight;
biBitCount=head.biBitCount;
//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)
intlineByte=(bmpWidth*biBitCount/8+3)/4*4;
//灰度图像有颜色表,且颜色表表项为256
if(biBitCount==8){
//申请颜色表所需要的空间,读颜色表进内存
pColorTable=newRGBQUAD[256];
fread(pColorTable,sizeof(RGBQUAD),256,fp);
}
//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=newunsignedchar[lineByte*bmpHeight];
fread(pBmpBuf,1,lineByte*bmpHeight,fp);
//关闭文件
fclose(fp);
return1;
}
boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight,
intbiBitCount,RGBQUAD*pColorTable)
{
//如果位图数据指针为0,则没有数据传入,函数返回
if(!imgBuf)
return0;
//颜色表大小,以字节为单位,灰度图像颜色表为1024字节,彩色图像颜色表大小为0
intcolorTablesize=0;
if(biBitCount==8)
colorTablesize=1024;
//待存储图像数据每行字节数为4的倍数
intlineByte=(width*biBitCount/8+3)/4*4;
//以二进制写的方式打开文件
FILE*fp=fopen(bmpName,"wb");
if(fp==0)return0;
//申请位图文件头结构变量,填写文件头信息
BITMAPFILEHEADERfileHead;
fileHead.bfType=0x4D42;//bmp类型
//bfSize是图像文件4个组成部分之和
fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+colorTablesize+lineByte*height;
fileHead.bfReserved1=0;
fileHead.bfReserved2=0;
//bfOffBits是图像文件前3个部分所需空间之和
fileHead.bfOffBits=54+colorTablesize;
//写文件头进文件
fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);
//申请位图信息头结构变量,填写信息头信息
BITMAPINFOHEADERhead;
head.biBitCount=biBitCount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=0;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biWidth=width;
head.biXPelsPerMeter=0;
head.biYPelsPerMeter=0;
//写位图信息头进内存
fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp);
//如果灰度图像,有颜色表,写入文件
if(biBitCount==8)
fwrite(pColorTable,sizeof(RGBQUAD),256,fp);
//写位图数据进文件
fwrite(imgBuf,height*lineByte,1,fp);
//关闭文件
fclose(fp);
return1;
}
intmain()
{
charinFileName[90],outFileName[90];
printf("请输入原始位图文件的文件名:");
scanf("%s",inFileName);
printf("请输入加密程序产生的新位图文件的文件名:");
scanf("%s",outFileName);
//读入指定BMP文件进内存
readBmp(inFileName);
//输出图像的信息
printf("width=%d,height=%d,biBitCount=%d ",bmpWidth,bmpHeight,biBitCount);
//将图像数据存盘
saveBmp(outFileName,pBmpBuf,bmpWidth,bmpHeight,biBitCount,pColorTable);
//清除缓冲区,pBmpBuf和pColorTable是全局变量,在文件读入时申请的空间
delete[]pBmpBuf;
if(biBitCount==8)
delete[]pColorTable;
return0;
}

H. 怎样用c语言实现BMP读存

直接用fread读取就可以。你得知道bmp的格式,头文件存放的信息,读出出来就知道文件的大小,分辨率,大小端等。在读取每一位的颜色信息。注意bmp是按行倒叙存取,还有注意bmp有字节对齐的。

I. bmp位图文件格式是什么,在c语言中给定屏幕坐标颜色画点

bmp是有自己的存储规范的

你可以搜一下 不是太复杂
要画点
先要读bmp头
获取颜色类型 图片长宽
然后seek到数据区开头
根据颜色类型和长宽值,解析出每行点的颜色值
并转为你画图板的颜色类型值, 赋值即可。

J. C语言 读取黑白BMP图

1.
黑白BMP文件图的像素大多是从62字节(从0数起)开始。具体从哪一字节开始,
决定于文件中第10字节(从0数起)开始处4字节的整形数是多少.
因为文件头后面不是紧接着像素值.
2.
黑白BMP图的一个像素用一个bit表示。一般0表示背景(缺省为白色),1表示前景色(缺省为黑色)。即一个字节代表相邻的8个像素。
3.
320*240的黑白BMP图,每行320个像素用40个字节表示,240行,应占40*240=9600字节。加上前头62字节,文件大小应为9662字节。
4.
BMP图像素的存储顺序是自底向上。所以文件最后40个字节表示的是第一行的像素值。
5.
行宽如不是8的倍数,也扩展到8的倍数。如行宽321,
则每行像素需用41个字节存储。你的行宽320,恰好是8的倍数,没有这个问题。