1。jpeg在数据库中是否以二进制方式存储?
2。若是以二进制方式存储,读出时怎样在视图上显示?
我知道一种读数据库中位图的方法,读出来后显示是用CreateDIBitmap函数得到HBITMAP.但是显示jpeg又怎样做呢?? 还望哪位大虾指点,不甚感激!!
2。若是以二进制方式存储,读出时怎样在视图上显示?
我知道一种读数据库中位图的方法,读出来后显示是用CreateDIBitmap函数得到HBITMAP.但是显示jpeg又怎样做呢?? 还望哪位大虾指点,不甚感激!!
解决方案 »
- 各位前辈 帮我看看 这些专业的都是做什么的 谢谢各位
- 请教,关于CListCtrl鼠标单击后图标不见的问题
- 求教啊为什么会报错呢
- 高结帖率是获得满意答案的关键!!
- 什么情况下必须要用到DuplicateHandle函数?
- 可用分超过10000,散分3
- 用WinSock API接收UDP消息时,可不可以设置接收Buffer?如何设置?
- 见笑,怎样改变窗口的背景色啊?
- 使用DirectX的程序改变了显示模式,同时在标准模式下运行的另外一个程序如何把显示模式切换回标准模式,再切换回使用DirectX的程序的显示
- 谁可以帮我查查分吗?
- 如何获取进程内所有句柄(搞定了我14xx分全送了)
- 急!急!急!用vc如何把数据库中的jpeg文件读出并在视图中显示出来?
2。void CShowJpgView::OnDraw(CDC* pDC)
{
CShowJpgDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if(m_ok==false)
{
IStream *pStm;
CFileStatus fstatus;
CFile file;
LONG cb;
if (file.Open("test.jpg",CFile::modeRead)&&file.GetStatus("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->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)))
double fX,fY;
fX = 640;
fY = 480;
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
// pPic->Release();
m_ok=true;
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
}
else
AfxMessageBox("Can't Open Image File!");
}
else
{
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
double fX,fY;
fX = 640;
fY = 480;
pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL);
}
// TODO: add draw code for native data here
}