图形图象程序设计基础

图形图象程序设计基础

ID:40175622

大小:98.50 KB

页数:34页

时间:2019-07-24

图形图象程序设计基础_第1页
图形图象程序设计基础_第2页
图形图象程序设计基础_第3页
图形图象程序设计基础_第4页
图形图象程序设计基础_第5页
资源描述:

《图形图象程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、图形图象程序设计基础常用颜色模式RGBRGB模式ABGRRGBA模式ARGBBGRA模式RGB(255,0,0)0xff0000ff0xffff000024位32位存放颜色的数据结构及其合成RGB模式:COLORREFclr;clr=RGB(R,G,B);RGBA模式:UINTclr;clr=(A<<24)+(B<<16)+(G<<8)+R;BGRA模式:UINTclr;clr=(A<<24)+(R<<16)+(G<<8)+B;颜色叠加(以BGRA模式为例)UINToverlay_color(UINTclr1,UINTclr2){intr,g,b,a,r

2、1,b1,g1,r2,g2,b2,a1,a2;UINTnew_color;a1=(UINT)clr1>>24;a2=(UINT)clr2>>24;if(a2==0)returnclr1;if(a1==255)returnclr1;if(a1==0)returnclr2;ARGBr1=clr1&0x00ff0000;g1=clr1&0x0000ff00;b1=clr1&0x000000ff;r2=clr2&0x00ff0000;g2=clr2&0x0000ff00;b2=clr2&0x000000ff;r=(UINT)((255-a1)*r2+a1*r1)

3、>>24;g=(UINT)((255-a1)*g2+a1*g1)>>16;b=(UINT)((255-a1)*b2+a1*b1)>>8;a=(a1>a2?a1:a2);ARGBnew_color=(UINT)(a<<24)+(UINT)(r<<16)+(UINT)(g<<8)+b;returnnew_color;}ARGBBMP文件结构BMP文件组成文件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER颜色信息RGBQUAD图形数据BITMAPDATABMP文件头BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等

4、信息。其结构定义如下:typedefstructtagBITMAPFILEHEADER{WORDbfType;//位图文件的类型,必须为BMDWORDbfSize;//位图文件的大小,以字节为单位WORDbfReserved1;//位图文件保留字,必须为0WORDbfReserved2;//位图文件保留字,必须为0DWORDbfOffBits;//位图数据的起始位置,以相对于位图//文件头的偏移量表示,以字节为单位}BITMAPFILEHEADER;位图信息头BMP位图信息头数据用于说明位图的尺寸等信息。typedefstructtagBITMAPINF

5、OHEADER{DWORDbiSize;//本结构所占用字节数LONGbiWidth;//位图的宽度,以像素为单位LONGbiHeight;//位图的高度,以像素为单位WORDbiPlanes;//目标设备的级别,必须为1WORDbiBitCount//每个像素所需的位数,必须是1(双色),//4(16色),8(256色)或24(真彩色)之一DWORDbiCompression;//位图压缩类型,必须是0(不压缩),//1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一DWORDbiSizeImage;//位图的大小,以字节为单位LONGbi

6、XPelsPerMeter;//位图水平分辨率,每行像素数LONGbiYPelsPerMeter;//位图垂直分辨率,每列像素数DWORDbiClrUsed;//位图实际使用的颜色表中的颜色数DWORDbiClrImportant;//位图显示过程中重要的颜色数}BITMAPINFOHEADER;颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:typedefstructtagRGBQUAD{BYTErgbBlue;//蓝色的亮度(值范围为0-255)BYTErgbGr

7、een;//绿色的亮度(值范围为0-255)BYTErgbRed;//红色的亮度(值范围为0-255)BYTErgbReserved;//保留,必须为0}RGBQUAD;位图信息位图信息头和颜色表组成位图信息。BITMAPINFO结构定义如下:typedefstructtagBITMAPINFO{BITMAPINFOHEADERbmiHeader;//位图信息头RGBQUADbmiColors[1];//颜色表}BITMAPINFO;常用的显示方法(1)直接写入设备缓冲区(速度慢)如:dc.SetPixel(x,y,RBG(255,0,0,));(2)先

8、写入内存图象缓冲区,然后一次性写入设备缓冲区(速度快)UINT*buf=newU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。