在VC中显示JPEG和GIF图像
来源:互联网 发布:如何看待网络ip剧改编 编辑:程序博客网 时间:2024/04/28 01:45
我看了MSDN也以为只对BMP有用,结果是对JPG GIF都可以。
向不轻信MS的JDK致敬!
//admire JDK
以下是实验代码,大家可以在95下试试,我在98+IE5上成功。
是一个CView的例子,别忘了AfxOleInit
void CPICView::OnDraw(CDC* pDC)
{
CPICDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
IPicture *pPic;
IStream *pStm;
CFileStatus fstatus;
CFile file;
LONG cb;
if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.jpg",
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);
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->Ge
tDeviceCaps(HORZSIZE)*100.0);
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G
etDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h
mHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
pPic->Release();
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
}
else
AfxMessageBox("Can't Open Image File!");
}
向不轻信MS的JDK致敬!
//admire JDK
以下是实验代码,大家可以在95下试试,我在98+IE5上成功。
是一个CView的例子,别忘了AfxOleInit
void CPICView::OnDraw(CDC* pDC)
{
CPICDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
IPicture *pPic;
IStream *pStm;
CFileStatus fstatus;
CFile file;
LONG cb;
if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.jpg",
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);
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->Ge
tDeviceCaps(HORZSIZE)*100.0);
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G
etDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h
mHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
pPic->Release();
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
}
else
AfxMessageBox("Can't Open Image File!");
}
- 在VC中显示JPEG和GIF图像
- VC显示JPEG和GIF图像
- VC下显示JPEG、GIF图像
- VC 如何显示JPEG、GIF格式图像
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 转贴:VC下显示JPEG、GIF图像的简便方法
- VC下显示JPEG、GIF图像的简便方法
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- vc利用api载入jpeg、gif图像
- VC界面显示图片(JPG JPEG GIF)
- VC界面显示图片(JPG JPEG GIF)
- VC编程之在MFC程序中显示JPG/GIF图像
- 自定义水晶报表的外观
- Microsoft .Net Remoting系列专题
- 【原创】DevExpress.ExpressQuantumGrid.Suite.v5.9 FS在BCB6下安装过程实录
- .NET混淆原理 (一)
- COM技术初探(一)
- 在VC中显示JPEG和GIF图像
- 数据分页的总结
- JSP乱码的一个解决方法
- COM技术初探(二)
- PIX 防火墙应用举例
- MSSQL数据库日志清理
- PIX防火墙特点与应用
- 在asp.net中使用异步同步rss
- 微软、google、IBM的某些招聘试题