GDI 使用小記

2021-05-27 02:12:46 字數 1825 閱讀 3403

1.初始化:

#include using namespace gdiplus; 

#pragma comment(lib,"gdiplus.lib")

gdiplusstartupinput gdiplusstartupinput;

gdiplusstartup(&gdi_token, &gdiplusstartupinput, null) ;

gdiplusshutdown(gdi_token);

2.使用:

先貼幾個簡單的例子:

絕對路徑:

image image(text("d:\\program files\\vs2005_project\\test\\test\\res\\未標題-1.png"));

cpaintdc dc(this);

graphics g(dc) ;

g.drawimage(&image,0,0,image.getwidth(),image.getheight());

不要寫image img;這樣會報錯:error c2248: 「gdiplus::image::image」: 無法訪問 protected 成員(在「gdiplus::image」類中宣告)

相對路徑:

bool loadresimage(int nresid,image * &lpimage,lpctstr lptype = text("png"));

bool loadresimage(int nresid,image * &lpimage, lpctstr lptype)

// load from stream

lpimage=gdiplus::image::fromstream(pstm);

// free/release stuff

globalunlock(m_hmem);

pstm->release();

freeresource(lprsrc);

globalfree(m_hmem);return true ;

}

呼叫:

image *pimage;

小知識:要用ps建立背景透明的png,直接把背景刪了,儲存。同樣,上面例子畫出來的png透明部分會把底色透出來

3.判斷image物件的型別:

簡單說明例子:

guid formatid;

pimage->getrawformat(&formatid);

int m_nimgformat;

enum imgformat ;

if (formatid == gdiplus::imageformatbmp)

if (formatid == gdiplus::imageformatjpeg)

if (formatid == gdiplus::imageformatpng)

if (formatid == gdiplus::imageformatgif)

if (formatid == gdiplus::imageformattiff)

使用GDI 程式設計

1.引言 gdi 是windows xp中的乙個子系統,它主要負責在顯示螢幕和列印裝置輸出有關資訊,它是一組通過c 類實現的應用程式程式設計介面。顧名思義,gdi 是以前版本gdi的繼承者,出於相容性考慮,windows xp仍然支援以前版本的gdi,但是在開發新應用程式的時候,開發人員為了滿足圖形...

GDI 簡單使用例子

gdi 簡單使用例子 1 目錄 2 修訂歷史紀錄 3 1 介紹 4 2 約定 4 3 示例 4 本文件將以乙個具體的例子,講解gdi 簡單的使用例子。斜體字是真正的程式 gdi 主要使用的是system.drawing system.drawing.drawing2d system.drawing....

GDI 遊戲程式設計之2 GDI 基本使用

gdi 就是 window系統提供了一些函式,gdi 就是.net裡面對這些函式的封裝,這些函式主要是在system.drawing 裡面,他包含了 繪圖裝置,畫筆,畫刷,顏色等各種東西,反正就是那些視窗控制項什麼的都是用他畫出來的,比如 按鈕,選單 滾動條什麼的。gdi gdi 就是window系...