一. 引言
可以借助于windows操作系统附带的放大程序来实现.但该程序只能以固定的放大倍数去进行观看,有时并不能满足我们的需要.本文就通过mfc基本类库提供的stretchblt函数来实现对屏幕图象的局部放大,并且可以随意放大.缩小,选取到合适的放大倍数来对图像的细节进行观察. 【程序编程相关:网吧无盘问题(3)】当我们想仔细观察某个细微的东西时,一般都会使用放大镜.而要看清显示在计算机屏幕上的图片或文字时通常也 【推荐阅读:无盘网吧速度比有盘网吧快吗?】本程序主要用来对图像的局部进行可调倍数的放大,应当具有以下主要功能: 【扩展信息:网吧无盘问题(1)】二. 设计与实现 1. 移动mouse放大显示图像的不同部位 2. 左击增加放大倍率.右击减少放大倍率. 从光学角度来看,对物体的放大成像是通过把较小的真实物体显示成尺寸较大的虚像来实现的.因此我们可以用类似的原理,把图像中待放大的区间从较小的显示范围拉伸到一个比较大的显示范围即可达到图像放大的效果,两个区间的比值也就是图像的放大倍率.可以通过缩小源区间的范围或扩大放大区间的范围来实现放大倍率的调整.在mfc基本类库中提供有cdc类的stretchblt函数可以将一幅位图从一个源矩形以一定的光栅操作拷贝到另外一个不同大小的目标矩形中去,因此可以用此函数来实现图象放大的功能,其函数原形声明如下: bool stretchblt( int x, int y, //目标矩形的坐标原点 int nwidth, int nheight, //目标矩形的长度与宽度 cdc* psrcdc, //源设备环境句柄 int xsrc, int ysrc, //源矩形的坐标原点 int nsrcwidth, int nsrcheight, //源矩形的长度与宽度 dword dwrop ); //光栅操作标志 当指定的源与目标矩形的宽度或高度不一样时,stretchblt函数将创建一个位图的镜像.如果是宽度有变化,就沿x轴创建镜像;如果是高度上有变化就沿y轴创建镜像.而且该函数可以在内存中对源图象做拉伸或压缩处理后再拷贝到目标矩形中去. 要放大图像首先要把图像显示出来,一般可以从文件动态装载或者直接从资源中用loadbitmap读取位图资源.... 下一页