『壹』 請問C語言怎麼調用圖片
直接調用並顯示JPG BMP等格式圖片的函數好像沒有,要自己編寫。
首先要弄清楚圖片格式的編碼方式,然後設置解析度,可以顯示出來。
void far getimage(int left,int top,int right,int bottom,void far *buf)
說明:把屏幕圖形部分拷貝到由BUF所指向的內在區域,左上角和右下角圖標。用函數IMAGESIZE()來確定存儲圖像所需位元組數。用GETIMAGE()存儲的圖像可以用PUTIMAGTE()函數寫到屏幕上。
『貳』 C語言怎樣顯示一張圖片
1、如果有圖片(例如 wzzx.jpg) 程序中插一句:
system("mspaint wzzx.jpg"); 就可以 在運行時顯示這張圖片。
用字元串變數調用也可以:
char pic_name[80]="wzzx.jpg";
char cmd[100];
sprintf(cmd,"mspaint %s",pic_name);
system(cmd); // 顯示圖片
2、system函數:
原型:int system(const char * command);
功能:執行 dos(windows系統) 或 shell(Linux/Unix系統) 命令,參數字元串command為命令名;
說明:在windows系統中,system函數直接在控制台調用一個command命令。在Linux/Unix系統中,system函數會調用fork函數產生子進程,由子進程來執行command命令,命令執行完後隨即返回原調用的進程;
頭文件:stdlib.h;
返回值:命令執行成功返回0,執行失敗返回-1。
『叄』 怎樣用C語言顯示一張jpg的圖片呢
可以用函數OleLoadPicture從包含有圖像數據的流中裝載圖像。
具體實現代碼如下:
//在顯示圖像之前,首先要獲取到圖像文件的存放路徑,這里採用標準的文件打開對話框來選取圖像文件,文件名存放在CString型的變數m_sPath中:
CFileDialogdlg(TRUE,"jpg","*.jpg",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif||",NULL);
if(dlg.DoModal()==IDOK)
{
m_sPath=dlg.GetPathName();
Invalidate();
}
//為簡單計,圖形顯示的代碼直接在視類中的OnDraw中編寫,首先打開文件並判斷文件的可用性,並把文件內容放到流介面IStream的對象pStm中:
IStream*pStm;
CFileStatusfstatus;
CFilefile;
LONGcb;
……
if(file.Open(m_Path,CFile::modeRead)&&file.GetStatus(m_Path,fstatus)&&((cb=fstatus.m_size)!=-1))
{
HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOIDpvData=NULL;
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.ReadHuge(pvData,cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
}
}
}
//然後,就直接調用OleLoadPicture函數從流中裝載圖像:
IPicture*pPic;
……
OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic));
//由於該函數有時會導致失敗,所以應當用SUCCEEDED宏來做一些適當的保護工作,只有在數據裝載成功的前提下才能繼續下面的圖像顯示工作:
if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIChmWidth;
OLE_YSIZE_HIMETRIChmHeight;
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
doublefX,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介面對象的Render函數來完成的,該函數主要用來將圖片的指定部分畫到指定的設備環境的指定位置。
原型如下:
HRESULTRender(HDChdc,//渲染圖像用的設備環境句柄
longx,//在hdc上的水平坐標
longy,//在hdc上的垂直坐標
longcx,//圖像寬度
longcy,//圖像高度
OLE_XPOS_HIMETRICxSrc,//在源圖像上的水平偏移
OLE_YPOS_HIMETRICySrc,//在源圖像上的垂直偏移
OLE_XSIZE_HIMETRICcxSrc,//在源圖像上水平拷貝的數量
OLE_YSIZE_HIMETRICcySrc,//在源圖像上垂直拷貝的數量
LPCRECTprcWBounds//指向目標圖元設備環境句柄的指針);
『肆』 用c語言如何讀取和保存jpg圖片文件
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d== ",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}
(4)c語言怎麼調用圖片擴展閱讀:
c語言讀取TXT文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE]; /*緩沖區*/
FILE *fp; /*文件指針*/
int len; /*行字元個數*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '