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.

主站蜘蛛池模板: 亚洲一区二区三区麻豆| 国产爽爽视频| 国模在线视频一区二区三区| 成人免费一级片| 欧美高清视频一区二区三区| 国产成人精品一区二区不卡| 亚洲精品久综合蜜| 亚洲精品动漫| jizz亚洲高清在线观看| 欧美一级黄片一区2区| v天堂中文在线| 日本福利视频网站| 岛国精品一区免费视频在线观看| 香蕉网久久| 国产迷奸在线看| 日韩a级毛片| 国产美女丝袜高潮| 美女毛片在线| 欧美爱爱网| 日本www色视频| 亚洲自拍另类| 99久久99视频| 国内a级毛片| 青青草91视频| 尤物国产在线| 亚洲看片网| 久草视频中文| 亚洲—日韩aV在线| 99精品福利视频| 成人福利视频网| 亚洲乱强伦| 国产毛片一区| 国产亚洲视频免费播放| 2020国产精品视频| 日韩色图在线观看| 国产男女免费完整版视频| 国产a v无码专区亚洲av| 手机永久AV在线播放| av尤物免费在线观看| 亚洲三级a| 福利片91| 国产亚洲一区二区三区在线| 伊人激情综合网| 青青草原国产| 波多野结衣中文字幕一区| 亚洲一区国色天香| 首页亚洲国产丝袜长腿综合| 国产AV毛片| a级毛片免费播放| 亚洲第一视频网站| 91国内在线视频| 国产成人三级| 国产免费久久精品44| 日本午夜精品一本在线观看| www精品久久| 亚洲福利网址| 中文天堂在线视频| 国产成人综合在线观看| 亚洲香蕉在线| 国产成人免费| 免费国产在线精品一区| 九色视频在线免费观看| 国产女人在线观看| 久久香蕉欧美精品| 欧美日韩国产在线人成app| av天堂最新版在线| 精品夜恋影院亚洲欧洲| 自拍亚洲欧美精品| 最近最新中文字幕在线第一页| 亚洲欧洲国产成人综合不卡| 精品视频在线一区| 国产九九精品视频| 成人免费一区二区三区| 欧美精品亚洲日韩a| 婷婷色婷婷| 久久精品人人做人人综合试看| a亚洲视频| 亚洲国产欧美中日韩成人综合视频| 精品国产黑色丝袜高跟鞋| a亚洲视频| 日本国产一区在线观看| 丁香婷婷激情综合激情|