真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言圖片顯示函數(shù),c語(yǔ)言輸出圖片的函數(shù)

c語(yǔ)言中,如何在運(yùn)行時(shí)顯示一張圖片,函數(shù),用法,謝謝大神

如果你有圖片(例如 wzzx.jpg) 程序中插一句:

成都創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷推廣,域名與空間,網(wǎng)站空間,成都網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系成都創(chuàng)新互聯(lián)

system("mspaint wzzx.jpg"); 就可以 在運(yùn)行時(shí)顯示這張圖片。

用字符串變量調(diào)用也可以:

char pic_name[80]="wzzx.jpg";

char cmd[100];

sprintf(cmd,"mspaint %s",pic_name);

system(cmd); // 顯示圖片

c語(yǔ)言調(diào)用圖片函數(shù)

c語(yǔ)言調(diào)用圖片函數(shù)

據(jù)我所知Matlab有,imshow(),c好象沒有,c只能先將圖片讀到內(nèi)存中,經(jīng)過(guò)相關(guā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ǔ)言中如何顯示圖片?

如果要顯示圖片,關(guān)鍵是要了解這些存儲(chǔ)格式的內(nèi)容和含義,

用函數(shù)initgraphs(int

vmode)完成(也就是利用bios中的int

10中斷來(lái)實(shí)現(xiàn)),

主要要把色表(color

map)按bmp格式添好,就ok了!有關(guān)圖象格式的內(nèi)容要查相關(guān)內(nèi)容,

其中還要涉及顯卡內(nèi)部的寄存器有關(guān)知識(shí)。

所以比較復(fù)雜

怎樣用C語(yǔ)言顯示一張jpg的圖片呢

可以用函數(shù)OleLoadPicture從包含有圖像數(shù)據(jù)的流中裝載圖像。

具體實(shí)現(xiàn)代碼如下:

//在顯示圖像之前,首先要獲取到圖像文件的存放路徑,這里采用標(biāo)準(zhǔn)的文件打開對(duì)話框來(lái)選取圖像文件,文件名存放在CString型的變量m_sPath中:?

CFileDialog?dlg(TRUE,"jpg","*.jpg",?

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,?

"JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif||",NULL);?

if(dlg.DoModal()==IDOK)?

{?

m_sPath=dlg.GetPathName();?

Invalidate();?

}?

//為簡(jiǎn)單計(jì),圖形顯示的代碼直接在視類中的OnDraw中編寫,首先打開文件并判斷文件的可用性,并把文件內(nèi)容放到流接口IStream的對(duì)象pStm中:?

IStream?*pStm;?

CFileStatus?fstatus;?

CFile?file;?

LONG?cb;?

……?

if?(file.Open(m_Path,CFile::modeRead)file.GetStatus(m_Path,fstatus)?((cb?=?fstatus.m_size)?!=?-1))?

{?

HGLOBAL?hGlobal?=?GlobalAlloc(GMEM_MOVEABLE,?cb);?

LPVOID?pvData?=?NULL;?

if?(hGlobal?!=?NULL)?

{?

if?((pvData?=?GlobalLock(hGlobal))?!=?NULL)?

{?

file.ReadHuge(pvData,?cb);?

GlobalUnlock(hGlobal);?

CreateStreamOnHGlobal(hGlobal,?TRUE,?pStm);?

}?

}?

}?

//然后,就直接調(diào)用OleLoadPicture函數(shù)從流中裝載圖像:?

IPicture?*pPic;?

……?

OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)pPic));?

//由于該函數(shù)有時(shí)會(huì)導(dǎo)致失敗,所以應(yīng)當(dāng)用SUCCEEDED宏來(lái)做一些適當(dāng)?shù)谋Wo(hù)工作,只有在數(shù)據(jù)裝載成功的前提下才能繼續(xù)下面的圖像顯示工作:?

if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)pPic)))?

{?

OLE_XSIZE_HIMETRIC?hmWidth;?

OLE_YSIZE_HIMETRIC?hmHeight;?

pPic->get_Width(hmWidth);?

pPic->get_Height(hmHeight);?

double?fX,fY;?

……?

fX?=?(double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);?

fY?=?(double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);?

if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))?

AfxMessageBox("渲染圖像失??!");?

pPic->Release();?

}?

else?

AfxMessageBox("從流中裝載圖像失??!");?

//其中,顯示工作主要是由IPicture接口對(duì)象的Render函數(shù)來(lái)完成的,該函數(shù)主要用來(lái)將圖片的指定部分畫到指定的設(shè)備環(huán)境的指定位置。

原型如下:?

HRESULT?Render(?HDC?hdc,?//渲染圖像用的設(shè)備環(huán)境句柄?

long?x,?//在hdc上的水平坐標(biāo)?

long?y,?//在hdc上的垂直坐標(biāo)?

long?cx,?//圖像寬度?

long?cy,?//圖像高度?

OLE_XPOS_HIMETRIC?xSrc,?//在源圖像上的水平偏移?

OLE_YPOS_HIMETRIC?ySrc,?//在源圖像上的垂直偏移?

OLE_XSIZE_HIMETRIC?cxSrc,//在源圖像上水平拷貝的數(shù)量?

OLE_YSIZE_HIMETRIC?cySrc,//在源圖像上垂直拷貝的數(shù)量?

LPCRECT?prcWBounds?//指向目標(biāo)圖元設(shè)備環(huán)境句柄的指針);

c語(yǔ)言的圖形函數(shù)庫(kù)有哪些?

圖形和圖像函數(shù)包含在graphics.h里面

(一) 像素函數(shù)

56. putpiel() 畫像素點(diǎn)函數(shù)

57. getpixel()返回像素色函數(shù)

(二) 直線和線型函數(shù)

58. line() 畫線函數(shù)

59. lineto() 畫線函數(shù)

60. linerel() 相對(duì)畫線函數(shù)

61. setlinestyle() 設(shè)置線型函數(shù)

62. getlinesettings() 獲取線型設(shè)置函數(shù)

63. setwritemode() 設(shè)置畫線模式函數(shù)

(三)、多邊形函數(shù)

64. rectangle() 畫矩形函數(shù)

65. bar() 畫條函數(shù)

66. bar3d() 畫條塊函數(shù)

67. drawpoly() 畫多邊形函數(shù)

(四)、 圓、弧和曲線函數(shù)

68. getaspectratio()獲取縱橫比函數(shù)

69. circle()畫圓函數(shù)

70. arc() 畫圓弧函數(shù)

71. ellipse()畫橢圓弧函數(shù)

72. fillellipse() 畫橢圓區(qū)函數(shù)

73. pieslice() 畫扇區(qū)函數(shù)

74. sector() 畫橢圓扇區(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è)像素才能畫出。當(dāng)然如果沒有畫像素的功能,就無(wú)法操作直線和曲線的函數(shù)。而且通過(guò)大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫、擦除和與屏幕上的原有圖形進(jìn)行疊加。

(一) 像素函數(shù)

56. putpixel() 畫像素點(diǎn)函數(shù)

功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫一個(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)處畫一個(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è)置情況(參見setpalette()函數(shù))。

這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h

返回值: 返回一個(gè)像素點(diǎn)色彩值。

例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。

color=getpixel(8,6);


分享文章:c語(yǔ)言圖片顯示函數(shù),c語(yǔ)言輸出圖片的函數(shù)
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/heecpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部