Tc中用initgraph()函數(shù)可以切換到圖形模式,用closegraph()可以從圖形模式切換回字符模式。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到鄠邑網(wǎng)站設(shè)計(jì)與鄠邑網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋鄠邑地區(qū)。
initgraph()和closegraph()都是圖形函數(shù),使用圖形函數(shù)必須包括頭文件"graphics.h"。
void far i nitgraph(int far *graphdriver, int far *graphmode,char far *pathtodriver);
graphdriver是指向圖形驅(qū)動(dòng)序號(hào)變量的指針,
graphmode是在graphdriver選定后,指向圖形顯示模式序號(hào)變量的指針,
pathtodriver表示存放圖形驅(qū)動(dòng)文件的路徑。
圖形驅(qū)動(dòng)序號(hào)不同,圖形驅(qū)動(dòng)文件也不同。序號(hào)為VGA圖形驅(qū)動(dòng)對(duì)應(yīng)"egavga.bgi"這個(gè)圖形驅(qū)動(dòng)文件。
"egavga.bgi"一般在 Tc目錄下
例如:
-------
#include graphics.h
int Drive,Mode=DETECT;
initgraph(Drive,Mode,""); //圖形顯示器、顯示模式、路徑自動(dòng)檢測(cè)
運(yùn)行時(shí)需要在當(dāng)前目錄下存在 EGAVGA.BGI文件
在TC\BGI目錄底下
-------
如果編譯后的.exe文件在另外一個(gè)目錄(如編譯后的.exe文件在D:\MyTc 目錄下,而編譯器的程序和.BGI文件在C:\Turboc\bin 目錄下,則需要填上BGI文件的路徑
例如:
initgraph(Drive,Mode,"C:\\Turboc\\bgi");
(一)
像素函數(shù)
1.
putpiel()
畫(huà)像素點(diǎn)函數(shù)
2.
getpixel()返回像素色函數(shù)
(二)
直線和線型函數(shù)
1.
line()
畫(huà)線函數(shù)
2.
lineto()
畫(huà)線函數(shù)
3.
linerel()
相對(duì)畫(huà)線函數(shù)
4.
setlinestyle()
設(shè)置線型函數(shù)
4.
getlinesettings()
獲取線型設(shè)置函數(shù)
5.
setwritemode()
設(shè)置畫(huà)線模式函數(shù)
(三)多邊形函數(shù)
1rectangle()
畫(huà)矩形函數(shù)
2bar()
畫(huà)條函數(shù)
3 bar3d()
畫(huà)條塊函數(shù)
4drawpoly()
畫(huà)多邊形函數(shù)
(四)
圓、弧和曲線函數(shù)
1getaspectratio()獲取縱橫比函數(shù)
2circle()畫(huà)圓函數(shù)
3 arc()
畫(huà)圓弧函數(shù)
4ellipse()畫(huà)橢圓弧函數(shù)
5fillellipse()
畫(huà)橢圓區(qū)函數(shù)
6pieslice()
畫(huà)扇區(qū)函數(shù)
7sector()
畫(huà)橢圓扇區(qū)函數(shù)
列舉不完,
建議去網(wǎng)站下載c函數(shù)大全。
#include graphics.h
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(gdriver, gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*畫(huà)一長(zhǎng)方體*/
getch();
closegraph();
return 0;
}
有時(shí)編程者并不知道所用的圖形顯示器適配器種類, 或者需要將編寫(xiě)的程序 用于不同圖形驅(qū)動(dòng)器, Turbo C提供了一個(gè)自動(dòng)檢測(cè)顯示器硬件的函數(shù), 其調(diào)用
格式為:
void far detectgraph(int *gdriver, *gmode);
其中g(shù)driver和gmode的意義與上面相同。
例5. 自動(dòng)進(jìn)行硬件測(cè)試后進(jìn)行圖形初始化
#include graphics.h
int main()
{
int gdriver, gmode;
detectgraph(gdriver, gmode); /*自動(dòng)測(cè)試硬件*/
printf("the graphics driver is %d, mode is %d\n", gdriver, gmode); /*輸出測(cè)試結(jié)果*/
getch();
initgraph(gdriver, gmode, "c:\\tc");
/* 根據(jù)測(cè)試結(jié)果初始化圖形*/
bar3d(10, 10, 130, 250, 20, 1);
getch();
closegraph();
return 0;
}
上例程序中先對(duì)圖形顯示器自動(dòng)檢測(cè), 然后再用圖形初始化函數(shù)進(jìn)行初始化設(shè)置, 但Turbo C提供了一種更簡(jiǎn)單的方法, 即用gdriver= DETECT 語(yǔ)句后再跟 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(), 其調(diào)用格式為:void far closegraph(void);調(diào)用該函數(shù)后可退出圖形狀態(tài)而進(jìn)入文本方式(Turbo C 默認(rèn)方式), 并釋放用于保存圖形驅(qū)動(dòng)程序和字體的系統(tǒng)內(nèi)存。
c語(yǔ)言調(diào)用圖片函數(shù)
據(jù)我所知Matlab有,imshow(),c好象沒(méi)有,c只能先將圖片讀到內(nèi)存中,經(jīng)過(guò)相關(guān)處理后以一定的格式保存到硬盤(pán)中,然后再打開(kāi)圖片.
讀圖和存圖需要有專門(mén)的函數(shù),這些可以參考:
unsigned
char*
ReadBMPData(int
Width,
int
Height,
char
*fname)//圖像的寬和高,圖像的位置(包括后綴)
{
unsigned
char*
image
=
new
unsigned
char[Width*Height];
FILE
*fp;
fp
=
fopen(fname,
"rb");
fread(image,
1,
Width*Height,
fp);
fclose(fp);
return
image;
}
///////////////////////////
void
WriteRawData(unsigned
char*
image,
int
Width,
int
Height,
char
*fname)
{
FILE
*fp;
fp
=
fopen(fname,
"wb");
fwrite(image,
1,
Width*Height,
fp);
fclose(fp);
}
C語(yǔ)言的話有個(gè)挺好用的庫(kù)jpeglib或者jpeglib2用來(lái)處理jpg,是開(kāi)源,純C的