图形图象程序设计基础.pptx
《图形图象程序设计基础.pptx》由会员分享,可在线阅读,更多相关《图形图象程序设计基础.pptx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、存放颜色的数据结构及其合成存放颜色的数据结构及其合成RGB模式:COLORREF clr;clr=RGB(R,G,B);RGBA模式:UINT clr;clr=(A24)+(B16)+(G8)+R;BGRA模式:UINT clr;clr=(A24)+(R16)+(G24;a2=(UINT)clr224;if(a2=0)returnclr1;if(a1=255)returnclr1;if(a1=0)return clr2;ARGB第2页/共33页 r1=clr1&0 x00ff0000;g1=clr1&0 x0000ff00;b1=clr1&0 x000000ff;r2=clr2&0 x00ff
2、0000;g2=clr2&0 x0000ff00;b2=clr2&0 x000000ff;r=(UINT)(255-a1)*r2+a1*r1)24;g=(UINT)(255-a1)*g2+a1*g1)16;b=(UINT)(255-a1)*b2+a1*b1)8;a=(a1a2?a1:a2);ARGB第3页/共33页new_color=(UINT)(a24)+(UINT)(r16)+(UINT)(gGetSafeHdc(),x,y,wid,hei,0,0,wid,hei,buf,&bmpinfo,DIB_RGB_COLORS,SRCCOPY);第12页/共33页例:在800*600窗口中显示一个
3、矩形。直接写入设备缓冲区:CClientDCdc(this);intx,y;for(y=100;y=400;y+)for(x=100;x=400;x+)dc.SetPixel(x,y,RGB(255,0,0);速度慢,不能叠加第13页/共33页先形成内存图象缓冲区,再一次性写入设备缓冲区:intWIN_WID=800,WIN_HEI=600;intx,y;UINT*buf;CClientDC*dc;dc=newCClientDC(this);buf=newUINTWIN_WID*WIN_HEI;for(y=100;y=400;y+)for(x=100;x=400;x+)bufy*WIN_WID
4、+x=0 xffff0000;out_buf(0,0,WIN_WID,WIN_HEI,buf);第14页/共33页在内存缓冲区画图元voidline(intx1,inty1,intx2,inty2,UINTclr)inti,e,x,y,s1,s2,increx,increy,tamp,interchange;longintadd;x=x1;y=y1;if(x1x2)s1=1;elses1=-1;if(y1increx)tamp=increx;increx=increy;increy=tamp;interchange=1;elseinterchange=0;e=increy+increy-inc
5、rex;第16页/共33页 for(i=0;i=0)if(interchange=1)x=x+s1;elsey=y+s2;e=e-increx-increx;if(interchange=1)y=y+s2;elsex=x+s1;e=e+increy+increy;第17页/共33页写一块图象到内存图象缓冲区的指定位写一块图象到内存图象缓冲区的指定位置置voidwrite_video(intx0,inty0,intdx,intdy,UINT*image)inti,j,x1,y1,x2,y2,add,add0,ad,ad0=0;add0=y0*WIN_WID+x0;for(i=y0;iy0+dy;
6、i+)add=add0;ad=ad0;for(j=x0;jx0+dx;j+)bufadd+=imagead+;ad0+=dx;add0+=WIN_WID;第18页/共33页叠加一块图象到内存图象缓冲区的指定位叠加一块图象到内存图象缓冲区的指定位置置voidoverlay_video(intx0,inty0,intdx,intdy,UINT*image)inti,j,x1,y1,x2,y2,add,add0,ad,ad0=0;add0=y0*WIN_WID+x0;for(i=y0;iy0+dy;i+)add=add0;ad=ad0;for(j=x0;jx0+dx;j+)bufadd=overla
7、y_color(imagead+,bufadd);add+;ad0+=dx;add0+=WIN_WID;第19页/共33页叠加半透明玻璃叠加半透明玻璃 for(y=200;y=300;y+)for(x=200;x=300;x+)bufy*WIN_WID+x=overlay_color(0 x800000ff,bufy*WIN_WID+x);out_buf(0,0,WIN_WID,WIN_HEI,buf);第20页/共33页彩色图象转换为黑白图象彩色图象转换为黑白图象(灰度化)(灰度化)灰度值:z=0.3R+0.59G+0.11BUCHAR*c,z;for(y=0;yWIN_HEI;y+)for
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 图象 程序设计 基础
限制150内