999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Visual C++開發環境繪制PNG按鈕的方法

2009-10-19 09:07:38
新媒體研究 2009年17期

金 濤

[摘要]GDI是Windows圖形圖像編程的主要API接口,但是其功能貧乏,使用復雜性給程序員帶來很多的不便。GDI+的出現使這一現象大為改觀,它是微軟的.Net Framework的一個重要組成部分,大大增強Windows的圖形圖像開發接口,同時它也改變了傳統的GDI編程模式,使開發工作大幅度簡化。首先從理論角度介紹GDI+的種種優越特性,再從代碼開發的角度說明如何來使用GDI+。

[關鍵詞]GDI+ PNG 圖形圖像

中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0910042-01

GDI+是一種應用程序編程接口(API),通過一套部署為托管代碼的類來展現。這套類被稱為GDI+的“托管類接口”。應用程序的程序員可利用GDI+這樣的圖形設備接口在屏幕或打印機上顯示信息,而不需要考慮特定顯示設備的具體情況。應用程序的程序員調用GDI+類提供的方法,而這些方法又反過來相應地調用特定的設備驅動程序。GDI+應用程序與圖形硬件隔離,而正是這種隔離允許開發人員創建設備無關的應用程序。

一、關于GDI+

(一)什么是GDI+

GDI+是GDI(Graphics Device Inteface)的一個新版本,它不僅對原有的GDI功能進行了優化,還添加了許多新特新。GDI+提供了顏色類、畫刷類、畫筆類、字體類、區域類、圖形類、位圖類和圖像類等,使得程序員能夠輕易的完成二維和三維圖形處理。

(二)GDI+的功能

GDI+主要提供了以下三個功能服務:

1.二維矢量圖形。矢量圖形包括坐標系統中的系列點指定的繪圖基元(如直線、曲線和圖形)。例如,直線可通過它的兩個端點來指定,而矩形可通過確定其左上角位置的點并給出其寬度和高度的一對數字來指定。簡單路徑可由通過直線連接的點的數組來指定。貝塞爾樣條是由四個控制點指定的復雜曲線。GDI+提供了存儲基元自身相關信息的類(結構)、存儲基元繪制方式相關信息的類,以及實際進行繪制的類。

2.圖像處理。有些種類的圖片很難或者根本無法用矢量圖形技術來顯示。例如,工具欄按鈕上的圖片和顯示為圖標的圖片就難以指定為直線和曲線的集合。擁擠的棒球運動場的高分辨率數字照片會更難以使用矢量技術來制作。這種類型的圖像可存儲為位圖,即代表屏幕上單個點顏色的數字數組。GDI+提供了Bitmap類,可用于顯示、操作和保存位圖。

3.文字顯示版式。就是使用各種字體、字號和樣式來顯示文本。GDI+為這種復雜任務提供了大量的支持。GDI+中的新功能之一是子像素消除鋸齒,它可以使文本在LCD屏幕上呈現時顯得比較平滑。本文首先介紹GDI+的幾個主要新增的特性及其功能,然后說明它給Windows圖形圖像程序的開發模式帶來的變化,最后給出代碼實例,介紹如何在VC++6.0中使用GDI+進行程序開發。

二、PNG按鈕的應用

下面展示一個以PNG圖片為背景的按鈕的簡單應用,環境選擇在VC++6.0下。

(一)需要下載GDI+開發包

這里面包含了GDI+里的很多類和函數。先需要有GDI+的開發包(.Net Framework中包含該開發包),可以去微軟的FTP網站免費下載,需要的文件有:動態鏈接庫文件gdiplus.dll,靜態鏈接庫文件gdiplus.Lib,代碼中所需要的多個以gdiplus開頭的頭文件如gdiplus*.h等文件。

(二)VC中的設置

Tools/Options/Directories中加入所下載的文件所在路徑在Project

/Settings/Link中加入gdiplus.Lib。

StdAfx.h中包含頭文件#include。

另外,要使用GDI+的文件頭部加上名字空間聲明:Using namespace GdiPlus。

(三)用VC開發GDI+程序(設工程文件名為GDIPlus2Demo)

1.先要進行初始化,在CGDIPlusDemoApp類聲明一個成員變量

ULONG PTR m_gdiplusToken;//ULONG PTR為int64類型

2.在CGDIPlusDemoApp::InitInstance()函數中加入以下代碼對GDI+進行初始化

GdiplusStartupInput gdiplusStartupInput;

GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL);

3.在CGDIPlusDemoApp::ExitInstance()函數加入以下代碼對GDI+關

閉GDI+

GdiplusShutdown(m_gdiplusToken);

4.接下來就可以在利用GDI+進行畫圖了

在CGDIPlusDemoView::OnPaint()中進行畫圖:

CPaintDC dc(this);//device context for painting

CRect rc;

GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rc); //獲得按鈕的大小

ScreenToClient(&rc); //屏幕坐標轉換為客戶區坐標

Graphics graphics(GetDC()->m_hDC); //創建需要的DC,取得DC句柄

Image image(L"btn.png",false); //圖片的路徑(可以用相對路徑)

Graphics.DrawImage(?,rc.left-30,rc.top-30,rc.Width()+60,rc.Height()+60); //按鈕上面畫出圖片

三、結論

本文經過對GDI+進行功能研究以及開發Windows圖像程序的演示,展示了新一代的Windows圖形圖像接口種種優越特性。GDI+不但在功能上比GDI要強大很多,而且在代碼編寫方面也簡單很多,因此將很快成為Windows圖形圖像程序開發的首選。

基金項目:甘肅政法學院科研資助青年

項目編號:GZF2009XQNLW20

參考文獻:

[1]Microsoft MSDN[EB/OL].http://msdn.microsoft.com/li2rary/,Micr

osoft,20022051.

[2]侯捷,深入淺出mfc第二版[M].湖北:華中科技大學出版社,2001.

[3]王鉦旋,計算機圖像處理程序設計[M].長春:吉林大學出版社,1999.

主站蜘蛛池模板: 国产一区二区三区免费观看 | 在线精品自拍| 国产日韩欧美一区二区三区在线| 高清色本在线www| 日本免费福利视频| 亚洲无码在线午夜电影| aa级毛片毛片免费观看久| 国产哺乳奶水91在线播放| 九九视频免费在线观看| AV在线天堂进入| 久久青草免费91线频观看不卡| 亚洲最猛黑人xxxx黑人猛交| 日韩麻豆小视频| 成人午夜视频网站| 国产精品无码在线看| 乱人伦99久久| 狂欢视频在线观看不卡| 日本不卡在线视频| 中国一级毛片免费观看| 国产午夜一级毛片| 日韩A∨精品日韩精品无码| 久久精品丝袜| 国产高清在线精品一区二区三区 | 国产精品亚洲va在线观看| 在线免费观看a视频| 无码高潮喷水在线观看| 久久久久88色偷偷| 一本大道香蕉久中文在线播放| 久久婷婷五月综合色一区二区| 一本综合久久| 好久久免费视频高清| 亚洲视频a| 99er这里只有精品| 国产美女无遮挡免费视频| 在线免费无码视频| 久久精品国产在热久久2019| 国产免费黄| 中国丰满人妻无码束缚啪啪| 91精品啪在线观看国产91九色| 四虎永久在线| 91精品啪在线观看国产91九色| 国产一级裸网站| 九九久久99精品| 黄色网址手机国内免费在线观看| 伊人久久福利中文字幕| 亚洲一区无码在线| 内射人妻无套中出无码| 免费国产高清视频| 国产乱子伦视频在线播放| 在线一级毛片| 国产嫩草在线观看| 毛片基地视频| 亚洲精品无码高潮喷水A| 国产又爽又黄无遮挡免费观看| 欧美成一级| 噜噜噜久久| 男女性午夜福利网站| 国产成本人片免费a∨短片| 91精品国产情侣高潮露脸| 国产区网址| 欧美成人一级| 色爽网免费视频| 国产一区二区三区免费| 欧美三级自拍| 国产成人91精品| 日韩东京热无码人妻| 麻豆精品国产自产在线| 国产传媒一区二区三区四区五区| 正在播放久久| 全部无卡免费的毛片在线看| 国产精品视屏| 亚洲视频四区| 性欧美久久| av无码久久精品| 国产精品美人久久久久久AV| 国产成人精品一区二区三区| 亚洲中文在线看视频一区| 精品国产91爱| 成年看免费观看视频拍拍| 毛片在线看网站| 久久久噜噜噜| 欧美在线视频a|