日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CImage类的使用介绍!

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CImage类的使用介绍! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接參考:http://www.cnblogs.com/juncheng/articles/1600730.html

CImage是MFC和ATL共享的新類,它能從外部磁盤中調入一個JPEG、GIF、BMP和PNG格式的圖像文件加以顯示,而且這些文件格式可以相互轉換。例如通過簡單的幾句,就可以實現CImage類和CBitmap類實例的轉換:

HBITMAP hBitmap=image.Detach();
CBitmap bmp;
bmp.Attach(hBitmap);

這樣一來,就又回歸到以前操縱CBitmap的方式了.CImage本身封裝了DIB(設備無關位圖)的功能,因而能夠處理每個位圖像素。

它具有下列最酷特性:
  1、AlphaBlend支持像素級的顏色混合,從而實現透明和半透明的效果。
  2、PlgBlt能使一個矩形區域的位圖映射到一個平行四邊形區域中,而且還可能使用位屏蔽操作。
  3、TransparentBlt在目標區域中產生透明圖像,SetTransparentColor用來設置某種顏色是透明色。
  4、MaskBlt在目標區域中產生源位圖與屏蔽位圖合成的效果。

由于CImage在不同的Windows操作系統中其某些性能是不一樣的,因此在使用時要特別注意。例如,CImage::PlgBlt和CImage::MaskBlt只能在 Windows NT 4.0 或更高版本中使用,但不能運行在Windows 95/98 應用程序中。CImage::AlphaBlend和CImage::TransparentBlt也只能在 Windows 2000/98或其更高版本中使用。即使在Windows 2000運行程序還必須將stdafx.h文件中的WINVER和_WIN32_WINNT的預定義修改成0x0500才能正常使用。


(1):MFC顯示圖像的類CImage:

我使用的函數:

void CAviTestDlg::showCimage(CImage &image) { //CImage image; //創建圖片類 //image.Load(rphoto); //根據圖片路徑加載圖片 CRect rect;//定義矩形類 int cx = image.GetWidth();//獲取圖片寬度 int cy = image.GetHeight();//獲取圖片高度 GetDlgItem(IDC_SHOWPIC)->GetWindowRect(&rect);//將窗口矩形選中到picture控件上 ScreenToClient(&rect);//將客戶區選中到Picture控件表示的矩形區域內 GetDlgItem(IDC_SHOWPIC)->MoveWindow(rect.left, rect.top, cx, cy, TRUE);//將窗口移動到Picture控 CWnd *pWnd=GetDlgItem(IDC_SHOWPIC);//獲得pictrue控件窗口的句柄 pWnd->GetClientRect(&rect);//獲得pictrue控件所在的矩形區域 CDC *pDC=pWnd->GetDC();//獲得pictrue控件的DC image.Draw(pDC->m_hDC, rect); //將圖片畫到Picture控件表示的矩形區域 ReleaseDC(pDC);//釋放picture控件的DC }

(2):CImage(MFC) 加載剪貼板圖像數據

CView *cv=this; CImage* m_image; OpenClipboard(NULL); HANDLE h=::GetClipboardData(CF_BITMAP); if(h==0) { CloseClipboard(); return; } BITMAP bm; GetObject(h,sizeof(bm),&bm); if(m_image!=NULL) { delete m_image; m_image=NULL; } m_image=new CImage(); m_image->Create(bm.bmWidth,bm.bmHeight,32,0); HDC hdc=m_image->GetDC(); CDC imgDC; imgDC.Attach(hdc); CBitmap *pBmp=new CBitmap; pBmp->Attach(h); CClientDC dc(cv); CDC memDC; memDC.CreateCompatibleDC(&dc); CBitmap *pOldBitmap=memDC.SelectObject(pBmp); imgDC.BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(pOldBitmap); pBmp->Detach(); delete pBmp; imgDC.Detach(); m_image->ReleaseDC();

(3):微軟官方說明:http://technet.microsoft.com/zh-cn/magazine/k826sz5e(en-us,VS.80).aspx

類的使用:http://msdn.microsoft.com/zh-cn/library/bwea7by5(v=vs.80)

CImage::Create?

Creates a?CImage?bitmap and attach it to the previously constructed?CImage?object.

BOOL Create(int nWidth,int nHeight,int nBPP,DWORD dwFlags = 0 ) throw( );

Parameters

nWidth

The width of the?CImage?bitmap, in pixels.

nHeight

The height of the?CImage?bitmap, in pixels. If?nHeight?is positive, the bitmap is a bottom-up DIB and its origin is the lower left corner. If?nHeight?is negative, the bitmap is a top-down DIB and its origin is the upper left corner.

nBPP

The numbers of bits per pixel in the bitmap. Usually 4, 8, 16, 24, or 32. Can be 1 for monochrome bitmaps or masks.

dwFlags

Specifies if the bitmap object has an alpha channel. Can be a combination of zero or more of the following values:

  • createAlphaChannel???Can only be used if?nBPP?is 32, and?eCompression?is?BI_RGB. If specified, the created image has an alpha (transparency) value for each pixel, stored in the 4th byte of each pixel (unused in a non-alpha 32-bit image). This alpha channel is automatically used when callingCImage::AlphaBlend.

總結

以上是生活随笔為你收集整理的CImage类的使用介绍!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩一二三四区 | 精品一区二区三区毛片 | 啄木乌欧美一区二区三区 | 日韩一级性| 黄色片网站免费看 | 国产永久免费 | 少妇又紧又色又爽又刺激视频 | 少妇高潮久久久 | 欧美成人精品一区二区男人看 | 在线小视频你懂的 | 福利在线视频导航 | 99av视频 | 69亚洲精品久久久蜜桃小说 | 精品人妻中文无码av在线 | 日韩精品高清在线 | 婷婷av在线| 男女激情视频网站 | 丁香综合| 色婷婷婷婷 | 国产又粗又猛又爽视频 | 久久午夜神器 | 色一情一乱一伦一区二区三区 | 日韩阿v| 成人精品三级 | 国内精品在线观看视频 | 韩国三级hd中文字幕叫床浴室 | 亚洲插| 中文在线一区二区 | 瑟瑟av | 韩国美女一区 | 久久久久无码精品国产sm果冻 | 亚洲欧美在线观看 | 亚洲乱淫| 操操网| 欧日韩不卡视频 | 免费在线成人网 | 亚洲成av人片久久 | 亚洲男人的天堂网 | 久草视频免费在线观看 | 久久首页 | 人妻少妇精品中文字幕av蜜桃 | 国产鲁鲁 | 欧美精品一区二区成人 | 少妇激情视频 | 色男人av| 成人在线观看亚洲 | 日本高清不卡视频 | 曰本黄色大片 | 黄色小视频免费 | 国产午夜一区 | 69久人妻无码精品一区 | 老司机深夜福利视频 | 日日操视频 | 欧美亚洲大片 | 啪啪.com| 久久国产一二三 | 色爽| 国产一区两区 | 天天弄天天操 | 干骚视频 | 射影院| 人人干天天操 | 性一交一乱一透一a级 | 成人小视频在线看 | 性感美女被草 | 人人插人人澡 | 国产视频一区三区 | 成人在线观看www | www.狠狠| 网址在线观看你懂的 | 四虎少妇做爰免费视频网站四 | 日本高清视频www夜色资源 | 黄网站免费入口 | 美女性生活视频 | 免费的毛片网站 | 欧美特级特黄aaaaaa在线看 | 亚洲精品粉嫩小泬20p | 成人看片免费 | 99久99| 大胸美女啪啪 | av高潮 | 四虎一区二区三区 | a三级黄色片 | 天天爱天天爽 | av日韩在线播放 | 久久久久久久久久久久久久久久久久 | 伊人日韩 | 欧美色图视频在线 | 日韩黄 | 免费在线看黄网站 | 特黄aaaaaa私密按摩 | 女同另类之国产女同 | 9·1·黄·色·视·频 | 亚洲视屏 | 美女吞精视频 | 久久午夜电影 | 一区二区三区有限公司 | 日本无遮挡边做边爱边摸 | 亚洲图片在线观看 |