国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在MFC下完成圖像放大鏡

在MFC下完成圖像放大鏡

更新時間:2019-06-29 文章作者:未知 信息來源:網絡 閱讀次數:

信息產業部電子第二十二研究所青島分所 郎銳  

一、 引言

當我們想仔細觀察某個細微的東西時,一般都會使用放大鏡。而要看清顯示在計算機屏幕上的圖片或文字時通常也
可以借助于Windows操作系統附帶的放大程序來實現。但該程序只能以固定的放大倍數去進行觀看,有時并不能滿足我們
的需要。本文就通過MFC基本類庫提供的StretchBlt函數來實現對屏幕圖象的局部放大,并且可以隨意放大、縮小,選取
到合適的放大倍數來對圖像的細節進行觀察。

二、 設計與實現

本程序主要用來對圖像的局部進行可調倍數的放大,應當具有以下主要功能:

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讀取位圖資源。下面的代
碼放在視類的OnDraw函數中,用以在第一次調用時將位圖裝載并顯示出來,以后再被調用只是負責重畫:

……
static bool load;
if (!load)
{
BITMAP bm;
load = !load;
//裝載位圖到 m_pBitmap
m_pBitmap->LoadBitmap(IDB_BITMAP1);
//創建相關的設備環境
m_pdcMem->CreateCompatibleDC(pDC);
//將位圖從m_ pBitmap中裝載到m_pdcMem中
m_pdcMem->SelectObject(m_pBitmap);
m_pBitmap->GetObject(sizeof(bm),&bm);
m_sizeSource.cx = bm.bmWidth;
m_sizeSource.cy = bm.bmHeight;
m_sizeDest = m_sizeSource;
//把位圖從m_pdcMem中裝載到當前正在使用的設備環境中
pDC->StretchBlt(0,0,m_sizeSource.cx,m_sizeSource.cy,m_pdcMem,0,0,m_sizeSource.cx,m_sizeSource.cy,mana);
}
else
{
//重畫圖像
pDC->StretchBlt(0,0,m_sizeSource.cx,m_sizeSource.cy,m_pdcMem,0,0,m_sizeSource.cx,m_sizeSource.cy,mana);
SetCursor(NULL);//隱藏鼠標
}

要實現前面提到的第一個功能:移動MOUSE放大顯示圖像的不同部位,顯然首先要在WM_MOUSEMOVE消息的響應函數里編寫
代碼。以整形變量s和d來分別表示所選取的源和目標區域的大小,再通過消息響應函數OnMouseMove的入口參數point來確定當
前的鼠標位置就可以計算出我們要選取的源和目標區域在圖像的位置。放大的工作只需通過StretchBlt函數將源區域中所在的
圖像拉伸到目標矩形那么大,并拷貝給目標區域即可實現所選區域的放大效果,下面是部分主要代碼:

……
//確定目標區域、源區域的坐標位置
CRect srect,drect,mrect;
srect.left = point.x - s;
srect.top = point.y - s;
srect.right = point.x + s;
srect.bottom = point.y + s;
drect.left = point.x - d;
drect.top = point.y - d;
drect.right = point.x + d;
drect.bottom = point.y + d;

mrect.left = oldx - d;
mrect.top = oldy - d;
mrect.right = oldx + d;
mrect.bottom = oldy + d;
dd = 2*d;
//獲取可用設備環境句柄
CDC * pDC = GetDC();
OnPrepareDC(pDC);
if (recover)
{
pDC->BitBlt(mrect.left,mrect.top,dd,dd,m_pdcMem,mrect.left,mrect.top,mana);
}
//隱藏鼠標
SetCursor(NULL);
//拉伸放大
pDC->StretchBlt(drect.left,drect.top,drect.Width(),drect.Height(),m_pdcMem,srect.left,srect.top,srect.Width(),srect.Height(),SRCCOPY);
//保存當前鼠標位置備用
oldx = point.x; oldy = point.y;
//釋放設備環境句柄
ReleaseDC(pDC);
recover = true;
……

為了實現第二個功能:左擊增加放大倍率、右擊減少放大倍率,可以分別在消息WM_LBUTTONDOWN和消息WM_RBUTTONDOWN中添加改
變選取區域大小的代碼來實現。如果選取源矩形不變而改變目標矩形的大小會隨著放大倍數的增大,顯示區域也不斷增大,當放大到
一定程度的時候會另人無法忍受,因此選取通過縮放源矩形大小來控制放大倍數的方案:

void CZoomInView::OnRButtonDown(UINT nFlags, CPoint point)  
{
if (s < 60)  
{
SetCursor(NULL);
s+=3;
OnMouseMove(nFlags, point);
}  
CView::OnRButtonDown(nFlags, point);
}
……
void CZoomInView::OnLButtonDown(UINT nFlags, CPoint point)  
{
if(s>5)
{
s-=3;  
SetCursor(NULL);
OnMouseMove(nFlags, point);
}
CView::OnLButtonDown(nFlags, point);
}

小結:本文通過對MFC庫函數StretchBlt的使用來實現了對圖像位圖的局部細節的放大功能。本程序只是通過了一個簡單的例子做了講
解,重點放在StretchBlt函數的應用上,功能上也只實現了對本程序客戶區圖象的放大,如要對屏幕上其他程序和桌面進行放大則還需
要引入系統鉤子(HOOK)的技術來實現,并且需要把處理代碼放到動態連接庫中才可以實現全局鉤子。本程序在Windows 98下,以
Microsoft Visual C++ 6.0編譯通過。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产人伦精品一区二区| 夜夜精品视频一区二区| 国产精品麻豆视频| 亚洲va国产天堂va久久en| 91视频.com| 亚洲精品高清视频在线观看| 日av在线不卡| 东方aⅴ免费观看久久av| 在线欧美小视频| 亚洲精品一区二区三区蜜桃下载| 狠狠色丁香久久婷婷综| 日本韩国欧美三级| 久久久精品国产免大香伊| 国产91露脸合集magnet| 亚洲日韩欧美一区二区在线| 欧美在线999| 国产一区二区不卡| 日韩无一区二区| 夜夜操天天操亚洲| 成人精品国产免费网站| 精品区一区二区| 亚洲成人av电影在线| 精品美女被调教视频大全网站| 国产精品综合二区| 日韩一区国产二区欧美三区| 国产成人在线网站| 亚瑟在线精品视频| 国产精品理论在线观看| 国产凹凸在线观看一区二区| 2021中文字幕一区亚洲| 成人av免费在线观看| 日韩成人精品在线观看| 国产精品福利在线播放| 91在线观看美女| 麻豆国产欧美日韩综合精品二区 | 亚洲视频在线一区观看| 亚洲一区二区免费视频| 亚洲精品一区在线观看| 日本人妖一区二区| 中文字幕乱码日本亚洲一区二区 | 亚洲一区二区免费视频| 中文字幕乱码一区二区免费| 久久精品国产一区二区| 一区二区理论电影在线观看| 国产三级精品三级| 日韩欧美一区二区三区在线| 欧洲精品一区二区三区在线观看| 国产高清无密码一区二区三区| 日韩制服丝袜av| 亚洲欧美日韩一区二区| 国产亚洲精品免费| 91久久久免费一区二区| 亚洲va欧美va人人爽| ●精品国产综合乱码久久久久| 在线观看av一区二区| 99久久精品免费看国产免费软件| 国产乱码精品一区二区三区五月婷| 久久久久久久精| 成人国产精品免费观看视频| 国产精品1区2区| 国产一区二区三区| 国产一区二区三区四区五区入口| 久久精品久久精品| 激情久久五月天| 国产寡妇亲子伦一区二区| 国产一区二区久久| 成人福利视频网站| 一本色道久久综合亚洲91| 91丨国产丨九色丨pron| 欧美日韩视频专区在线播放| 麻豆高清免费国产一区| 经典三级在线一区| 丁香五精品蜜臀久久久久99网站| 亚洲国产成人高清精品| 免费观看在线综合色| 国产精品资源在线观看| 亚洲无人区一区| 久久精品视频免费观看| 国产精品国产精品国产专区不蜜| 欧美一区二区精品| 精品福利视频一区二区三区| 国产精品成人一区二区三区夜夜夜| 7777精品伊人久久久大香线蕉| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲国产精品麻豆| 精品一区二区三区不卡| 亚洲另类在线一区| 亚洲成人自拍一区| 一区在线观看视频| www欧美成人18+| 欧美肥胖老妇做爰| 成人app网站| 欧美日韩一区 二区 三区 久久精品| 91麻豆精品国产91久久久久久久久| 欧美电视剧在线观看完整版| 国产日韩精品一区二区三区在线| 综合欧美一区二区三区| 午夜视频在线观看一区| 激情综合网av| 日韩成人精品在线| 国产高清不卡一区| 国产在线国偷精品免费看| 成人涩涩免费视频| 在线播放一区二区三区| 久久久无码精品亚洲日韩按摩| 欧美精品粉嫩高潮一区二区| 欧美mv日韩mv国产网站| 日韩免费电影网站| 亚洲成va人在线观看| 亚洲成人7777| 亚洲国产一区二区三区 | 欧亚洲嫩模精品一区三区| 26uuu亚洲综合色| 一区二区三国产精华液| 亚洲成人激情综合网| 日本免费在线视频不卡一不卡二| 亚洲亚洲人成综合网络| 国产精品66部| 日韩精品一区二区在线观看| 午夜精品久久久久久久99水蜜桃 | 久久国内精品自在自线400部| 亚洲6080在线| 日本aⅴ精品一区二区三区| 蜜臀av亚洲一区中文字幕| 日本韩国视频一区二区| 这里是久久伊人| 午夜精品久久久久久久久久久| 色综合色综合色综合色综合色综合| 久久青草欧美一区二区三区| 精品在线观看视频| 26uuu欧美| 中文字幕一区二区三区精华液 | 日本aⅴ免费视频一区二区三区| 精品一区二区三区在线播放| 欧美美女黄视频| 国产欧美日韩视频在线观看| 精品在线播放免费| 91视频在线观看免费| 欧美一区二区三区视频免费播放| 一区二区三区四区精品在线视频| 91免费版在线| 久久久综合网站| 国产999精品久久久久久绿帽| 欧美国产激情二区三区| 99综合影院在线| 一区二区三区四区乱视频| 欧美在线free| 中文无字幕一区二区三区| 高清beeg欧美| 亚洲精品亚洲人成人网| 777a∨成人精品桃花网| 国产精品乱子久久久久| 色综合天天综合狠狠| 精品国产三级电影在线观看| 美国毛片一区二区三区| 精品sm捆绑视频| fc2成人免费人成在线观看播放 | 欧美性色欧美a在线播放| 亚洲国产精品久久不卡毛片| 欧美精品电影在线播放| 国产美女av一区二区三区| 欧美乱妇15p| 国内精品国产三级国产a久久| 91高清视频免费看| 精品国内片67194| 天天av天天翘天天综合网色鬼国产| 日韩一区二区三区av| 亚洲主播在线播放| 成人精品视频网站| 亚洲成av人片在线| 久久免费偷拍视频| 国产在线乱码一区二区三区| 国产精品高潮呻吟久久| 欧美高清视频一二三区| 粉嫩一区二区三区性色av| 精品乱人伦小说| 久久精品999| 亚洲另类在线视频| 久久久精品蜜桃| 国产精品一卡二卡| 精品欧美黑人一区二区三区| 91美女在线观看| 国产麻豆一精品一av一免费| 亚洲一区二区美女| 欧美色图一区二区三区| 亚洲图片欧美色图| 欧美喷水一区二区| aaa欧美日韩| 亚洲精品高清在线| 欧美午夜精品一区二区蜜桃| 成人午夜又粗又硬又大| 麻豆极品一区二区三区| 亚洲成在人线免费| 欧美成人三级在线| 黄色精品一二区| 久国产精品韩国三级视频| 日韩精品一卡二卡三卡四卡无卡| 亚洲欧美韩国综合色| 中文字幕日本不卡| 国产精品嫩草99a|