C语言显示图像(C语言显示图片)

今天给大家分享用C语言显示一个图像的知识,也会讲解用C语言显示的图像。如果你碰巧解决了你现在面临的问题,别忘了关注这个网站,现在就开始吧!

这篇文章的列表: 1.如何用C语言显示图片? 2.如何用C语言输出一张图片? 3.如何用C语言显示一张jpg图片? 如何用C语言显示图片? 1.图片也是一种文件类型,是二进制文件。fopen函数的二进制模式“rb”可以打开。

2.常规:

#包含stdlib.h

#包含stdio.h

int main()

{

FILE * fpPhoto,* fpText,* fpTarget

int iRead

char szBuf如何用C语言显示一张jpg图片? 您可以使用函数OleLoadPicture从包含图像数据的流中加载图像。

具体实现代码如下:

//在显示图像之前,必须先获取图像文件的存储路径。这里,标准的文件打开对话框用于选择图像文件,文件名存储在CString变量m_sPath:

CFileDialog dlg(TRUE," jpg "," *。jpg”,

OFN _ hide readonly | OFN _ overwrite prompt

“JPEG文件(*。jpg)|*。jpg|GIF文件(*。gif)|*。gif|| ",NULL);

如果(dlg。DoModal()==IDOK)

{

m_sPath=dlg。get pathname();

invalidate();

}

//为了简单起见,图形显示的代码直接用OnDraw写在visual类中。首先打开文件并判断文件的可用性,将文件内容放入流接口IStream的对象pStm中:

IStream * pStm

CFileStatus fstatus

CFile文件;

长CB;

……

如果(文件。打开(m_Path,CFile::modeRead)文件。GetStatus(m_Path,fstatus) ((cb = fstatus.m_size)!= -1))

{

h global h global = global alloc(GMEM _可移动,CB);

LPVOID pvData = NULL

如果(hGlobal!=空)

{

if ((pvData = GlobalLock(hGlobal))!=空)

{

文件。ReadHuge(pvData,CB);

global unlock(h global);

createstreamongglobal(h global,TRUE,pStm);

}

}

}

//然后,直接调用OleLoadPicture函数从流中加载图像:

IPicture * pPic

……

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

//因为这个函数有时会导致失败,所以你要使用SUCCEEDED宏做一些适当的保护工作,下面的图像显示工作只有在数据加载成功的前提下才能继续:

if(成功(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)pPic)))

{

OLE _ XSIZE _ HIMETRIC hmWidth

OLE _ YSIZE _ HIMETRIC hmHeight

pPic-> get _ Width(hm Width);

pPic-> get _ Height(hm Height);

double fX,fY;

……

fX =(double)pDC-> GetDeviceCaps(HORZRES)*(double)hm width/((double)pDC-> GetDeviceCaps(HORZSIZE)* 100.0);

fY =(double)pDC-> GetDeviceCaps(VERTRES)*(double)hm height/((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();

}

其他

AfxMessageBox("从流中加载图像失败!");

//其中,显示工作主要由IPicture接口对象的Render函数完成,主要用于将图片的指定部分绘制到指定设备环境的指定位置。

原型如下:

HRESULT Render( HDC hdc,//用于呈现图像的设备环境句柄。

长x,hdc上的横坐标。

长y,hdc上的纵坐标。

长cx,//图像宽度

Longchy,//图像高度

OLE_XPOS_HIMETRIC xSrc,//源图像上的水平偏移量。

Ole _ ypos _ himetricsrc,//源图像上的垂直偏移量

OLE_XSIZE_HIMETRIC cxSrc,//源图像上的水平副本数。

Ole _ ysize _ himetricsrc,//源图像上的垂直副本数。

lprectprcwbounds//指向目标原语设备的环境句柄的指针);

关于用C语言显示图像的介绍就到此为止吧。感谢您花时间阅读本网站的内容。不要忘记搜索关于用C语言显示图像和用C语言显示图像的更多信息。

相关文章

发表新评论