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语言显示图像的更多信息。
最后更新于 2023-09-12 07:44:16 并被添加「C语言 图像 」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- 用C语言堆栈实现计算器(C用堆栈实现计算器)
- C语言显示图像(C语言显示图片)
- C语言是否输入小写字母(C语言如何输入大写字母输出小写字母)
- Linuxc语言进程(linuxC语言进程共享内存)
- C语言遍历输出数组长度(C语言获取数组长度)