c語(yǔ)言調(diào)用圖片函數(shù)
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有榆社免費(fèi)網(wǎng)站建設(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);
}
圖形和圖像函數(shù)包含在graphics.h里面(一) 像素函數(shù)56. putpiel() 畫(huà)像素點(diǎn)函數(shù)57. getpixel()返回像素色函數(shù)(二) 直線和線型函數(shù)58. line() 畫(huà)線函數(shù)59. lineto() 畫(huà)線函數(shù)60. linerel() 相對(duì)畫(huà)線函數(shù)61. setlinestyle() 設(shè)置線型函數(shù)62. getlinesettings() 獲取線型設(shè)置函數(shù)63. setwritemode() 設(shè)置畫(huà)線模式函數(shù)(三)、多邊形函數(shù)64. rectangle() 畫(huà)矩形函數(shù)65. bar() 畫(huà)條函數(shù)66. bar3d() 畫(huà)條塊函數(shù)67. drawpoly() 畫(huà)多邊形函數(shù)(四)、 圓、弧和曲線函數(shù)68. getaspectratio()獲取縱橫比函數(shù)69. circle()畫(huà)圓函數(shù)70. arc() 畫(huà)圓弧函數(shù)71. ellipse()畫(huà)橢圓弧函數(shù)72. fillellipse() 畫(huà)橢圓區(qū)函數(shù)73. pieslice() 畫(huà)扇區(qū)函數(shù)74. sector() 畫(huà)橢圓扇區(qū)函數(shù)75. getarccoords()獲取圓弧坐標(biāo)函數(shù)(五)、 填充函數(shù)76. setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)77. setfillpattern() 設(shè)置用戶圖樣函數(shù)78. floodfill() 填充閉域函數(shù)79. fillpoly() 填充多邊形函數(shù)80. getfillsettings() 獲取填充設(shè)置函數(shù)81. getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)(六)、圖像函數(shù)82. imagesize() 圖像存儲(chǔ)大小函數(shù)83. getimage() 保存圖像函數(shù)84. putimage() 輸出圖像函數(shù)四、圖形和圖像函數(shù)對(duì)許多圖形應(yīng)用程序,直線和曲線是非常有用的。但對(duì)有些圖形只能靠操作單個(gè)像素才能畫(huà)出。當(dāng)然如果沒(méi)有畫(huà)像素的功能,就無(wú)法操作直線和曲線的函數(shù)。而且通過(guò)大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫(xiě)、擦除和與屏幕上的原有圖形進(jìn)行疊加。(一) 像素函數(shù)56. putpixel() 畫(huà)像素點(diǎn)函數(shù)功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫(huà)一個(gè)像素點(diǎn)。用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);說(shuō)明: 參數(shù)x,y為像素點(diǎn)的坐標(biāo),color是該像素點(diǎn)的顏色,它可以是顏色符號(hào)名,也可以是整型色彩值。此函數(shù)相應(yīng)的頭文件是graphics.h返回值: 無(wú)例: 在屏幕上(6,8)處畫(huà)一個(gè)紅色像素點(diǎn):putpixel(6,8,RED);57. getpixel()返回像素色函數(shù)功能: 函數(shù)getpixel()返回像素點(diǎn)顏色值。用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);說(shuō)明: 參數(shù)x,y為像素點(diǎn)坐標(biāo)。函數(shù)的返回值可以不反映實(shí)際彩色值,這取決于調(diào)色板的設(shè)置情況(參見(jiàn)setpalette()函數(shù))。這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h返回值: 返回一個(gè)像素點(diǎn)色彩值。例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。color=getpixel(8,6);
CImage類(lèi)是ATL和MFC共用的一個(gè)類(lèi),其頭文件為atlimage.h,主要用于圖片文件的打開(kāi),顯示與保存。這里需要注意的是,在VS2010和VS2012的MFC編程中,不需要將頭文件包含進(jìn)來(lái)。MFC中要使用CImage類(lèi),必須先將頭文件包含進(jìn)來(lái),可以包含在當(dāng)前代碼的CPP文件中,也可以包含在所屬類(lèi)的頭文件中,不過(guò)最好還是包含在工程的stdafx.h文件中。CImage總共有39個(gè)成員函數(shù)。