导航:首页 > 图片大全 > c如何显示图片

c如何显示图片

发布时间:2022-03-03 07:04:41

A. C语言如何显示图像

这部分应该属于图形界面程序的知识了.
你需要知道如果使用C语言编写含有图形窗口的程序.

B. 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. c语言中,如何在运行时显示一张图片,函数,用法,谢谢大神

如果你有图片(例如 wzzx.jpg) 程序中插一句:
system("mspaint wzzx.jpg"); 就可以 在运行时显示这张图片。

用字符串变量调用也可以:
char pic_name[80]="wzzx.jpg";
char cmd[100];
sprintf(cmd,"mspaint %s",pic_name);
system(cmd); // 显示图片

D. c语言怎样显示图片

C语言(Turbo C)有专门的屏幕绘图函数,
图片的文件格式也是公开的.
你可以查查其它资料,具体作法我不懂.
但是我知道是可以用C语言读取很多种
图片格式的图片并在屏幕上显示出来的.

E. 如何用c语言显示BMP图片

呵呵,你是想做什么层面?
1:从0开始解析bmp文件,然后绘制
弄清楚bmp文件结构,参见下面一片日志:www.cnblogs.com/kingmoon/archive/2011/04/18/2020097.html
靠着硬解析,在屏幕上一个像素一个像素的建立原有的bmp图像。
2:Win32API;这个得靠LoadImage这个API。
具体用法请查阅MSDN。问度娘MSDN LoadImage即可。
3:使用GUI开发框架,在控件上绘制图片。超简单
你们要求是什么。对着一个个看,如果你是做课程设计等大型作业的话,肯定是选1。我看选2,3一点技术含量也没有。调API或者相应方法完成,对于底层数据结构不了解,学了等于没学。
代码量是成倍的差距。数十倍。

F. 怎样用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//指向目标图元设备环境句柄的指针);

G. c语言程序中怎么显示图片

用库,比如OpenCV库等。C语言本身是不能完成这些的。

H. c语言中如何输出图像

lz需要弄清楚,你要输出什么格式的图像,bmp,JPG。。。不同格式的图像的数据内部结构是不一样的,弄清楚不同格式图片的数据结构组成,直接采用相应地算法,用C语言文件输出函数(fopen,fprintf……那几个函数,具体我也忘了怎么用了)将数据点写入文件就行了。

I. c语言 如何在输出中显示图片

使用C++和DirectDraw做很容易,DirectDraw是专门用来做游戏的,我给你找个例子
#include <windows.h>
int iCarX=-200,iCarY=200;
HINSTANCE hInstance;
HDC hdcSrc,hdcBack,hdcMem;
HBITMAP hBitmapSrc,hBitmapBack,hBitmapMem;

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int Render(HDC hdc);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("Spirit") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;

if (!RegisterClass (&wndclass))
{
MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow( szAppName, TEXT ("Spirit Demo 精灵动画演示"), WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch (message){

case WM_CREATE:
hInstance=((LPCREATESTRUCT)lParam)->hInstance;
hdc=GetDC(hwnd);
hdcSrc=CreateCompatibleDC(hdc); //源图像DC
hdcBack=CreateCompatibleDC(hdc); //目标图像DC
hdcMem=CreateCompatibleDC(hdc); //内存DC
hBitmapSrc=LoadBitmap(hInstance,TEXT("CARS")); //读图像
hBitmapBack=LoadBitmap(hInstance,TEXT("SCENE"));
hBitmapMem=CreateCompatibleBitmap(hdc,500,500); //为内存DC建立一个位图
SelectObject(hdcSrc,hBitmapSrc); //将位图分别选入DC
SelectObject(hdcBack,hBitmapBack);
SelectObject(hdcMem,hBitmapMem);

SetTimer(hwnd,1,10,NULL); //定时器,间隔10ms

return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;

Render(hdc); //我们的渲染函数

EndPaint (hwnd, &ps) ;
return 0 ;
case WM_TIMER:
iCarX+=1; //移动
if (iCarX>389) {
KillTimer(hwnd,1);
return 0;
}

InvalidateRect(hwnd,NULL,NULL); //这两句使窗口内容更新,即调用我们的渲染函数
UpdateWindow(hwnd);
return 0;
case WM_DESTROY:
DeleteDC(hdcSrc);
DeleteDC(hdcBack);
DeleteObject(hBitmapSrc);
DeleteObject(hBitmapBack);
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

int Render(HDC hdc){
BitBlt(hdcMem,0,0,500,500,hdcBack,0,0,SRCCOPY); //将背景拷贝到内存DC上

BitBlt(hdcMem,iCarX,iCarY,220,133,hdcSrc,220,0,SRCAND); //处理掩码图
BitBlt(hdcMem,iCarX,iCarY,220,133,hdcSrc,0,0,SRCPAINT); //处理目标图像

BitBlt(hdc,0,0,500,500,hdcMem,0,0,SRCCOPY); //画到屏幕上的窗口的DC
return 0;
}
这是我的个人游戏开发论坛,你可以来这里看资料!
http://tieba..com/f?kw=%D0%C7%BC%CA%B9%A4%D7%F7%CA%D2

J. C语言中如何显示图片

1、图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。
2、例程:

#include<stdlib.h>
#include<stdio.h>
intmain()
{
FILE*fpPhoto,*fpText,*fpTarget;
intiRead;
charszBuf[100];
printf("请输入第一个文件名(bmp): ");
gets(szBuf);
fpPhoto=fopen(szBuf,"rb");
printf("请输入第二个文件名(txt): ");
gets(szBuf);
fpText=fopen(szBuf,"rb");
printf("请输入目的文件名(bmp): ");
gets(szBuf);
fpTarget=fopen(szBuf,"wb");

if(!fpPhoto||!fpText||!fpTarget)
{
printf("打开文件失败! ");
system("pause");
return-1;
}

while((iRead=fread(szBuf,1,sizeof(szBuf),fpPhoto))>0)
fwrite(szBuf,1,iRead,fpTarget);
while((iRead=fread(szBuf,1,sizeof(szBuf),fpText))>0)
fwrite(szBuf,1,iRead,fpTarget);

fclose(fpPhoto);
fclose(fpText);
fclose(fpTarget);
return0;
}
阅读全文

与c如何显示图片相关的资料

热点内容
圆脸男发型图片男生 浏览:721
穿战袍的女孩图片 浏览:953
快手录音怎么带图片 浏览:920
带有仙气的可爱图片 浏览:516
图片k动漫图片大全 浏览:434
美到心碎的图片动漫 浏览:439
启辰图片价格 浏览:990
呆萌小女孩儿头像图片漫画 浏览:347
怎么把图片移到sd卡 浏览:966
宝马拉力机车高清图片 浏览:443
汉堡卡通人物图片大全可爱简笔画 浏览:921
分类垃圾桶简单图片 浏览:787
冠状发型图片 浏览:843
怎样把pdf图片放到一个word文档里 浏览:54
word图片标齐 浏览:690
微信怎么不发图片只编辑文字呢 浏览:763
动漫侧脸高清图片 浏览:542
动漫qq图片男 浏览:880
男脸圆的适合什么发型图片 浏览:246
壁纸可爱小猪全屏图片 浏览:812