国产午夜成人免费看片无遮挡_日本免费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>

        国产精品天天看| 欧美国产综合色视频| 国产无一区二区| 日本色综合中文字幕| 欧美男女性生活在线直播观看| 亚洲高清免费视频| 日韩一区二区视频| 国产精一品亚洲二区在线视频| 亚洲欧洲三级电影| 欧美精品久久久久久久久老牛影院| 爽好多水快深点欧美视频| 日韩女优av电影| 99久久国产综合精品女不卡| 日韩精品亚洲专区| 久久精品夜夜夜夜久久| 在线观看不卡一区| 国产一区二区久久| 亚洲黄色性网站| 欧美成人vps| 色网站国产精品| 国产婷婷色一区二区三区四区| 91亚洲精品久久久蜜桃网站| 久久精品国产亚洲高清剧情介绍| 国产精品狼人久久影院观看方式| 欧美久久久久久蜜桃| 成人av在线播放网址| 青青草精品视频| 91精品在线免费| 91在线一区二区三区| 麻豆久久一区二区| 一区二区三区蜜桃网| 国产蜜臀97一区二区三区| 欧美理论片在线| 91久久精品一区二区三| 国产91丝袜在线18| 蜜桃视频一区二区三区| 一区二区在线观看免费视频播放| 国产亚洲1区2区3区| 日韩一区二区电影网| 在线观看国产日韩| av午夜一区麻豆| 国产福利不卡视频| 久久草av在线| 狠狠色丁香久久婷婷综| 午夜激情久久久| 一区二区激情小说| 成人欧美一区二区三区黑人麻豆| 国产免费久久精品| 久久精品一区二区三区不卡牛牛| 精品日韩一区二区三区免费视频| 欧美一级夜夜爽| 精品久久五月天| 久久人人爽爽爽人久久久| 26uuu国产日韩综合| 欧美不卡在线视频| 精品av综合导航| 久久综合狠狠综合久久综合88 | 男人操女人的视频在线观看欧美| 亚洲精品免费一二三区| 亚洲人成亚洲人成在线观看图片| 中文字幕在线视频一区| 国产精品久久久久久久久果冻传媒 | 91女厕偷拍女厕偷拍高清| 波多野结衣中文字幕一区二区三区| 国产麻豆成人精品| 国产精品影视在线观看| 成人午夜视频网站| 91视频你懂的| 91精品国产aⅴ一区二区| 欧美成人一级视频| 国产欧美精品一区二区色综合朱莉| 国产精品视频九色porn| 亚洲人成在线观看一区二区| 天天色天天爱天天射综合| 蜜臀91精品一区二区三区| 国产在线国偷精品免费看| 大白屁股一区二区视频| 在线日韩国产精品| 欧美成人女星排名| 欧美国产欧美综合| 一区二区三区资源| 免费人成在线不卡| 成人av资源站| 日韩一区和二区| 中文字幕视频一区| 日韩精品国产欧美| 国产成a人亚洲精| 欧美性视频一区二区三区| 精品国产乱码久久久久久老虎| 中文字幕五月欧美| 久久er99热精品一区二区| 97久久久精品综合88久久| 91精品国产免费| 亚洲欧美在线观看| 日本va欧美va欧美va精品| 岛国一区二区在线观看| 制服丝袜亚洲播放| 1024国产精品| 国产一区免费电影| 在线观看日韩电影| 日本一区二区视频在线| 青青草原综合久久大伊人精品优势| av电影在线观看一区| 欧美videos中文字幕| 亚洲永久免费av| 97成人超碰视| 欧美国产综合色视频| 蜜臀久久99精品久久久久宅男| 97se亚洲国产综合自在线不卡| 久久久亚洲精华液精华液精华液| 亚洲国产裸拍裸体视频在线观看乱了| 粉嫩aⅴ一区二区三区四区| 日韩一区二区视频在线观看| 亚洲图片欧美色图| 91麻豆精品秘密| 综合欧美一区二区三区| 国产91色综合久久免费分享| 精品国偷自产国产一区| 日韩电影免费在线看| 欧美日韩亚洲国产综合| 一区二区三区四区不卡视频| 成人黄色777网| 久久久亚洲精品一区二区三区| 日韩精品久久久久久| 欧美色大人视频| 亚洲一区二区在线观看视频| av不卡免费在线观看| 中文字幕av一区二区三区| 国产成人精品一区二区三区网站观看| 日韩欧美国产一二三区| 日韩av在线播放中文字幕| 制服丝袜成人动漫| 日日摸夜夜添夜夜添亚洲女人| 欧美日韩精品系列| 天堂一区二区在线| 国产在线精品一区二区三区不卡| 日韩视频永久免费| 日韩和欧美一区二区三区| 欧美丰满美乳xxx高潮www| 日韩福利电影在线| 精品久久久久久久久久久久久久久 | 日韩高清欧美激情| 4438成人网| 蜜桃久久久久久久| 日韩一区二区不卡| 国产一区二区三区四 | 欧美少妇一区二区| 亚洲午夜激情网页| 欧美一级生活片| 国产精品888| 中文字幕精品在线不卡| 99这里只有精品| 亚洲国产精品综合小说图片区| 欧美精品乱码久久久久久按摩 | 欧美激情一区二区三区在线| 成人免费三级在线| 亚洲已满18点击进入久久| 日韩欧美高清dvd碟片| 国产成人精品免费看| 综合精品久久久| 91精品国产91久久综合桃花| 国产精品一二三四| 一区二区三区中文字幕在线观看| 91精品国产乱| 北岛玲一区二区三区四区| 亚洲第一久久影院| 久久久久久久综合日本| 欧美三级三级三级爽爽爽| 国产一区美女在线| 亚洲国产精品一区二区久久| 久久亚洲一级片| 欧美在线观看视频一区二区| 国产一区二区三区在线看麻豆| 亚洲老妇xxxxxx| 精品少妇一区二区三区日产乱码| 97se亚洲国产综合自在线不卡 | 91网站视频在线观看| 免费在线观看不卡| 中文字幕一区视频| 日韩一区二区三区精品视频| 色综合一个色综合| 久久超级碰视频| 一区二区欧美视频| 国产视频亚洲色图| 欧美一区在线视频| 91黄色激情网站| 国产精品每日更新在线播放网址| 欧美日韩成人综合在线一区二区| 波多野结衣精品在线| 国产一区二三区| 国产一区中文字幕| 六月婷婷色综合| 日本欧美在线看| 亚洲二区在线观看| 亚洲欧洲av在线| 中文字幕日韩一区| 国产女人水真多18毛片18精品视频| 国产精品99久久久久久似苏梦涵| 日本成人在线网站| 日韩中文字幕区一区有砖一区|