首页 > 知识库 > 正文

GetDIBColorTable是什么 关于GetDIBColorTable的详细介绍

展开全部 控制台 读取BMP图片文件 输出指定点的颜色分量includeincludeincludetypedef unsigned long DWORD;typedef int BOOL;typedef unsigned char BYTE;typedef unsigned short WORD;typedef struct tagBITMAPINFOHEADER{DWORD biSize;long biWidth;long biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;long biXPelsPerMeter;long biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;int ReadBmp(const char*szFileName);int GetDIBColor(int X,int Y,BYTE*r,BYTE*g,BYTE*b);BITMAPINFOHEADER bih;BYTE*Buffer=NULL;long LineByteWidth;int main(void){int x,y;BYTE r,g,b;int n;char szfilename[255]="c:\\\\1.bmp;if(ReadBmp(szfilename)=0){printf("failure to read file%s",szfilename);return 1;}printf("Width:%ld\\n",bih.biWidth);printf("Height:%ld\\n",bih.biHeight);printf("BitCount:%d\\n\\n",(int)bih.biBitCount);while(1){printf("input the X:");scanf("%d",&x);if(x)break;printf("input the Y:");scanf("%d",&y);if(GetDIBColor(x,y,&r,&g,&b)=1)printf("(%d,%d):r:%d,g:%d,b:%d\\n",x,y,(int)r,(int)g,(int)b);elseprintf("input error.\\n");}free(Buffer);return 0;}int ReadBmp(const char*szFileName){FILE*file;WORD bfh[7];long dpixeladd;if(NULL=(file=fopen(szFileName,"rb"))){return 0;}printf("%s\\n",szFileName);fread(&bfh,sizeof(WORD),7,file);if(bfh[0]!(WORD)(((WORD)'B')|('M'))){fclose(file);return 0;}fread(&bih,sizeof(BITMAPINFOHEADER),1,file);if(bih.biBitCount){fclose(file);return 0;}dpixeladd=bih.biBitCount/8;LineByteWidth=bih.biWidth*(dpixeladd);if((LineByteWidth%4)!0)LineByteWidth+4-(LineByteWidth%4);if((Buffer=(BYTE*)malloc(sizeof(BYTE)*LineByteWidth*bih.biHeight))!NULL){fread(Buffer,LineByteWidth*bih.biHeight,1,file);fclose(file);return 1;}fclose(file);return 0;}int GetDIBColor(int X,int Y,BYTE*r,BYTE*g,BYTE*b){int dpixeladd;BYTE*ptr;if(X|X>=bih.biWidth|Y|Y>=bih.biHeight){return 0;}dpixeladd=bih.biBitCount/8;ptr=Buffer+X*dpixeladd+(bih.biHeight-1-Y)*LineByteWidth;b=*ptr;g=*(ptr+1);r=*(ptr+2);return 1;}www.shufadashi.com*�ɼ*�

C++的.cpp中如何利用GetDIBits、GetDIBColorTable和BitBlt等等API...

[最佳答案] 控制台 读取BMP图片文件 输出指定点的颜色分量

[最佳答案] GetPixl函数每运行一次就会造成程序的出栈入栈,数百次运行后会是使效率极端低下, c++加SDK原生对图像处理的能力是很差的,正确的方法是楼主必须用MFC强大的类库,将图像数据作为整体内存分析,否则根本无法实现你的要求,仔细找,网上有,不是一两句话能说清楚的。。。在CPP的头文件中加入支持MFC的头文件,然后用MFC类库实现!具体在百度中找寻"GetPixl函数效率低下"。。在前五十页中就有,我以前遇到过你说的问题!!后来解决了。。。

向TA提问私信TA 展开全部 int GetDIBColor(int X, int Y, BYTE *r, BYTE *g, BYTE *b) { int dpixeladd;//每个点占几个Byte BYTE *ptr; if (X 0 || X = bih.biWidth || Y 0 || Y = bih.biHeigh

如何用c++编程实现提取给定图像中任意一点的RGB颜色值

include #include #include typedef unsigned long DWORD;typedef int BOOL;typed def unsigned long DWORD;typedef int BOOL;typed

[最佳答案] 控制台 读取BMP图片文件 输出指定点的颜色分量 #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef struct tagBITMAPINFOHEADER{ DWORD biSize; long biWidth; long biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; int ReadBmp(const char* szFileName); int

继续求C++编程高手帮忙

[最佳答案] c 控制台 读取BMP图片文件 输出指定点的颜色分量 只能读取 24 或 32 位 BMP 输入:文件名 读取文件 输入:坐标(-1结束程序) 输出:R(红色),G(绿色),B(蓝色) #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef struct tagBITMAPINFOHEADER{ DWORD biSize; long biWidth; long biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImp

用c++编写的读取bmp图中任意一像素点的RGB值的代码

[最佳答案] 控制台 读取BMP图片 文件 输出指定点的颜色分量 #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef unsigned long DWORD; typedef int BOOL;...

哪个大神能给一个linux c读取bmp图片某一个点的RGB值啊

[最佳答案] 控制台 读取BMP图片文件 输出指定点的颜色分量

C++ 编程问题bmp 关于读取某点的RGB值得函数的原理解析

向TA提问私信TA 展开全部 int GetDIBColor(int X, int Y, BYTE *r, BYTE *g, BYTE *b) { int dpixeladd;//每个点占几个Byte BYTE *ptr; if (X 0 || X = bih.biWidth || Y 0 || Y = bih.biHeigh...

谁能给一个依次读位深为24或32的BMP图像的RGB值的VC程序? ...

include #include #include typedef unsigned long DWORD;typedef int BOOL;typed def unsigned long DWORD;typedef int BOOL;typed

C++编程读取bmp图像将每个点的R,G值输出

向TA提问私信TA 展开全部 没有调试,合计自己加; #include stdio.h #include stdlib.h #include malloc.h typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char...

GetPixl函数每运行一次就会造成程序的出栈入栈,数百次运行后会是使效率极端低下,c++加SDK原生对图像处理的能力是很差的,正确的方法是楼主必须用MFC强大的类库,将图像数据作为整体内存分析,否则根本无法实现你的要求,仔细找,网上有,不是一两句话能说清楚的。在CPP的头文件中加入支持MFC的头文件,然后用MFC类库实现!具体在百度中找寻“GetPixl函数效率低下”。在前五十页中就有,我以前遇到过你说的问题!后来解决了。*www.shufadashi.com*ɼ*�

声明:本网内容旨在传播知识仅供参考,不代表本网赞同其观点,文字及图片版权归原网站所有。

你可能还关注
热门推荐
今日推荐 更多