MFC bmp图片处理

 在windows程序中经常要处理位图,下面写一点理解。

windows程序处理图像和现实世界中处理图像的过程差不多,下面来比较一下。

我们在作画时需要工具,比如画笔和刷子,GDI其实就对应这这类工具。

GDI(图形设备接口)。GDI对象代表一个物理设备,GDI对象有Pen,Brush等等。它代表的是作画用的工具。

另外,我们作画时需要一个载体,比如在纸上作画,或在黑板上作画。那么CDC对象就是作画的载体了。

CDC(设备上下文)其实就是指定在什么位置作画,在屏幕上 或是打印机上等等。

 

当我们需要在一张纸上作画时,首先要选好一张纸,那就是要准备好CDC对象,然后要选一支笔,那就是准备好GDI对象。

windows在画不同的图式时有专门的工具,比如划线,用Pen.

 

windows程序在处理一个图片时,它有一个专门的GDI工具来处理图片(CBitmap),CBitmap专门用来画图的。

比如我们现实世界中要将一幅图片画到黑板上,首先我们应该准备好一块黑板。

对应的计算机的操作就是准备好一个CDC对象。

CClientDC dc(this);OnPrepareDC(&dc);

我们要将一幅图片画到黑板上。我们不能直接把图贴到黑板上,首先我们要在脑子里面有个图片的样子,然后按照脑子中的样子,把图片复制到黑板上。

在计算机中这是要建立一个内存兼容DC,相当于在大脑中的草图。

pMemoryDC = new CDC;

首先建立了一个CDC对象,但是还不知道CDC是什么样子的。所以要建立一个和黑板兼容的DC,这样我们在画图的时候才知道怎么设计。pMemoryDC->CreateCompatibleDC(&dc),这样内存中的DC就是目标DC兼容了,就相当于我们脑海中出现了一个黑板的样子,这样我们就可以实际实际的图画了。

我们要在黑板上画一幅图,就要知道图的大小,那么我们首先要先设计画布的大小,首先我们要有一块画布。

对应的是建立一个CBitmap对象,pBitmap = new CBitmap;

在脑海中把画布铺到脑海的黑板上。

对应的是pMemoryDC->SelectObject(pBitmap);

然后是在脑海中将图设计好,也就是脑海中有了图片的完整样子。

对应的是将图片的内容拷贝到内存中的DC上,

最后是把脑海中的图片画到黑板上。

对应的是将内存中的图片,拷贝到真正的设备DC中。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值