#include graphics.h

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、塔城網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5技術、商城建設、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為塔城等各大城市提供網(wǎng)站開發(fā)制作服務。
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(gdriver, gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*畫一長方體*/
getch();
closegraph();
return 0;
}
有時編程者并不知道所用的圖形顯示器適配器種類, 或者需要將編寫的程序 用于不同圖形驅動器, Turbo C提供了一個自動檢測顯示器硬件的函數(shù), 其調用
格式為:
void far detectgraph(int *gdriver, *gmode);
其中gdriver和gmode的意義與上面相同。
例5. 自動進行硬件測試后進行圖形初始化
#include graphics.h
int main()
{
int gdriver, gmode;
detectgraph(gdriver, gmode); /*自動測試硬件*/
printf("the graphics driver is %d, mode is %d\n", gdriver, gmode); /*輸出測試結果*/
getch();
initgraph(gdriver, gmode, "c:\\tc");
/* 根據(jù)測試結果初始化圖形*/
bar3d(10, 10, 130, 250, 20, 1);
getch();
closegraph();
return 0;
}
上例程序中先對圖形顯示器自動檢測, 然后再用圖形初始化函數(shù)進行初始化設置, 但Turbo C提供了一種更簡單的方法, 即用gdriver= DETECT 語句后再跟 initgraph()函數(shù)就行了。采用這種方法后, 上例可改為:
例6.
#include graphics.h
int main()
{
int gdriver=DETECT, gmode;
initgraph(gdriver, gmode, "c:\\tc");
bar3d(50, 50, 150, 30, 1);
getch();
closegraph();
return 0;
}
另外, Turbo C提供了退出圖形狀態(tài)的函數(shù)closegraph(), 其調用格式為:void far closegraph(void);調用該函數(shù)后可退出圖形狀態(tài)而進入文本方式(Turbo C 默認方式), 并釋放用于保存圖形驅動程序和字體的系統(tǒng)內存。
Tc中用initgraph()函數(shù)可以切換到圖形模式,用closegraph()可以從圖形模式切換回字符模式。
initgraph()和closegraph()都是圖形函數(shù),使用圖形函數(shù)必須包括頭文件"graphics.h"。
void far i nitgraph(int far *graphdriver, int far *graphmode,char far *pathtodriver);
graphdriver是指向圖形驅動序號變量的指針,
graphmode是在graphdriver選定后,指向圖形顯示模式序號變量的指針,
pathtodriver表示存放圖形驅動文件的路徑。
圖形驅動序號不同,圖形驅動文件也不同。序號為VGA圖形驅動對應"egavga.bgi"這個圖形驅動文件。
"egavga.bgi"一般在 Tc目錄下
例如:
-------
#include graphics.h
int Drive,Mode=DETECT;
initgraph(Drive,Mode,""); //圖形顯示器、顯示模式、路徑自動檢測
運行時需要在當前目錄下存在 EGAVGA.BGI文件
在TC\BGI目錄底下
-------
如果編譯后的.exe文件在另外一個目錄(如編譯后的.exe文件在D:\MyTc 目錄下,而編譯器的程序和.BGI文件在C:\Turboc\bin 目錄下,則需要填上BGI文件的路徑
例如:
initgraph(Drive,Mode,"C:\\Turboc\\bgi");
直接調用并顯示JPG BMP等格式圖片的函數(shù)好像沒有,要自己編寫。
首先要弄清楚圖片格式的編碼方式,然后設置分辨率,可以顯示出來。
void far getimage(int left,int top,int right,int bottom,void far *buf)
說明:把屏幕圖形部分拷貝到由BUF所指向的內在區(qū)域,左上角和右下角圖標。用函數(shù)IMAGESIZE()來確定存儲圖像所需字節(jié)數(shù)。用GETIMAGE()存儲的圖像可以用PUTIMAGTE()函數(shù)寫到屏幕上。
例子代碼如下所示:
int Add(int x, int y) { ? ?int sum;
sum = x + y; ? ?return sum;
}void main() { ? ?int z;
z = Add(1, 2); ? ?printf("z=%d\n", z);
}
下面分析一下 Add函數(shù)的調用過程。
首先斷點在z = Add(1, 2);處, 反匯編如下所示:
int z;
z = Add(1, 2);002C141E 6A 02 ? ? ? ? ? ? ? ?push ? ? ? ?2 ?002C1420 6A 01 ? ? ? ? ? ? ? ?push ? ? ? ?1 ?002C1422 E8 60 FC FF FF ? ? ? call ? ? ? ?002C1087 ?
002C1427 83 C4 08 ? ? ? ? ? ? add ? ? ? ? esp,8 ?002C142A 89 45 F8 ? ? ? ? ? ? mov ? ? ? ? dword ptr [ebp-8],eax
首先壓入?yún)?shù)1和2:
002C141E 6A 02 ? ? ? ? ? ? ? ?push ? ? ? ?2 ?002C1420 6A 01 ? ? ? ? ? ? ? ?push ? ? ? ?1 ?
通過觀察ESP可以看到參數(shù)從右到左依次入棧,ESP往低內存方向移動8字節(jié):
ESP=0025FCCC
...0x0025FCAA ?00 00 78 4c 33 00 bc fc 25 00 a9 fe aa 0f 78 4c 33 00 c8 fc 25 00 3d 5a b2 0f *** 01 00 00 00 02 00 00 00 ***0x0025FCCC ?00 00 00 00
如果你有圖片(例如 wzzx.jpg) 程序中插一句:
system("mspaint wzzx.jpg"); 就可以 在運行時顯示這張圖片。
用字符串變量調用也可以:
char pic_name[80]="wzzx.jpg";
char cmd[100];
sprintf(cmd,"mspaint %s",pic_name);
system(cmd); // 顯示圖片
圖片也是一個文件,
1.你是要打開圖片嗎?(把圖像顯示出來?)
2.還是只需要圖片文件。
如果是1,那么你需要看.bmp的編碼方式和c庫的圖像類函數(shù)
如果是2,那么你就可以用fopen,fread,fwrite,fprintf,fscanf等調用即可。
網(wǎng)頁名稱:c語言怎么調用圖片函數(shù) 圖片怎么在c語言程序里表達
文章網(wǎng)址:http://chinadenli.net/article6/hipjog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、動態(tài)網(wǎng)站、網(wǎng)站內鏈、網(wǎng)頁設計公司、用戶體驗、品牌網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)