社区
图形处理/算法
帖子详情
怎么用StretchDIBits直接显示JPEG图像?
lpj
2005-08-18 12:25:20
查StretchDIBits的文档,说是对于win98, win2000及以后的版本可以直接显示,
不过它给的例子里CHECKJPEGFORMAT,ExtEscape都需要windows的头文件来定义,
我查了自己的机器上相应的头文件都没有这些关键字的定义。
请问如何才能用StretchDIBits直接显示?速度是不是比使用jpeglib快?
...全文
373
10
打赏
收藏
怎么用StretchDIBits直接显示JPEG图像?
查StretchDIBits的文档,说是对于win98, win2000及以后的版本可以直接显示, 不过它给的例子里CHECKJPEGFORMAT,ExtEscape都需要windows的头文件来定义, 我查了自己的机器上相应的头文件都没有这些关键字的定义。 请问如何才能用StretchDIBits直接显示?速度是不是比使用jpeglib快?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
寻开心
2005-09-06
打赏
举报
回复
cximage这个库,没有测试过
或者intel的jpeg库,它宣称比微软的快1倍
http://www.dogma.net/markn/articles/IntelJpgLibrary/
lpj
2005-09-06
打赏
举报
回复
利用这个帖子再问个问题,也是相关的,
请问怎么利用显卡硬解压功能编程?
lpj
2005-08-22
打赏
举报
回复
谢谢各位,
我希望能找到一个比jpeglib更快的jpeg解码方法,不知道大家知道不?
lixiaosan
2005-08-18
打赏
举报
回复
http://www.codeproject.com/bitmap/cximage.asp
http://www.codeproject.com/bitmap/pictureshow.asp
老夏Max
2005-08-18
打赏
举报
回复
使用GDI+操作之
DentistryDoctor
2005-08-18
打赏
举报
回复
使用IPicture
saliors
2005-08-18
打赏
举报
回复
用IPicture就可以了,程序:
HRESULT ShowPic(CString lpstrFile, HWND hwnd, int nScrWidth, int nScrHeight)
{
HDC hDC_Temp = ::GetDC(hwnd);
IPicture *pPic;
IStream *pStm;
BOOL bResult;
HANDLE hFile = NULL;
DWORD dwFileSize, dwByteRead;
// 打开硬盘中的图形文件
hFile = CreateFile(lpstrFile,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
dwFileSize = GetFileSize(hFile, NULL); // 获取文件字节数
if (dwFileSize == 0xFFFFFFFF)
return E_FAIL;
}
else
{
return E_FAIL;
}
// 分配全局存储空间
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
LPVOID pvData = NULL;
if (hGlobal == NULL)
return E_FAIL;
if ((pvData = GlobalLock(hGlobal)) == NULL) // 锁定分配内存块
return E_FAIL;
ReadFile(hFile, pvData, dwFileSize, &dwByteRead, NULL); // 把文件读入内存缓冲区
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
// 装入图形文件
bResult=OleLoadPicture(pStm, dwFileSize, TRUE, IID_IPicture, (LPVOID*)&pPic);
if(FAILED(bResult))
return E_FAIL;
OLE_XSIZE_HIMETRIC hmWidth; // 图片的真实宽度
OLE_YSIZE_HIMETRIC hmHeight; // 图片的真实高度
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
// 将图形输出到屏幕上(有点像BitBlt)
bResult = pPic->Render(hDC_Temp,
0,
0,
nScrWidth,
nScrHeight,
0,
hmHeight,
hmWidth,
-hmHeight,
NULL);
pPic->Release();
pStm->Release();
CloseHandle(hFile); // 关闭打开的文件
if (SUCCEEDED(bResult))
{
return S_OK;
}
else
{
return E_FAIL;
}
}
teli_eurydice
2005-08-18
打赏
举报
回复
IPicture
老夏Max
2005-08-18
打赏
举报
回复
Cximage使用的就是jpeg的库,呵呵,只不过它支持更多种格式的图片而已。
lpj
2005-08-18
打赏
举报
回复
使用Cximage和CPicture解压jpeg图像能快过使用jpeglib吗?
St
re
tchDI
Bits
()函数
St
re
tchDI
Bits
()函数
St
re
tchDI
Bits
用法
转自:http://blog.csdn.net/giantchen547792075/article/details/6996011
St
re
tchDI
Bits
函数把DIB、
JPEG
、PNG
图像
中一矩形区域内的像素颜色数据复制到指定的目标矩形里。如果目标矩形大于源矩形,此函数将拉伸的行和列以适合目标矩形的颜色数据。如果目标矩形小于源矩形,则此函数使用指定的光栅操作压缩的行和列。(Note:
St
re
tchDI
Bits
使用方法
转自:http://blog.csdn.net/giantchen547792075/article/details/6996011
St
re
tchDI
Bits
函数把DIB、
JPEG
、PNG
图像
中一矩形区域内的像素颜色数据拷贝到指定的目标矩形里。假设目标矩形大于源矩形,此函数将拉伸的行和列以适合目标矩形的颜色数据。假设目标矩形小于源矩形,则此函数使用指定的光栅操作压缩的行和列。...
如何将利用OpenCV加载的
图像
显示
在窗口位置?
如何将利用OpenCV加载的
图像
显示
在窗口位置? VC++中为了加载各种类型的
图像
,如果自己编,那么工作量很大,因为要面对的
图像
类型太多了(bmp,
jpeg
,jpg,gif,tif,ppm,pgm,png,pic等等)。我们不可能也没有必要针对每一种类型编出我们自己的编解码器,更为方便的方式是使用各种工具。一方面可以使用CXImage等类似库;另一方面可以利用OpenCV实现。这里我们讨论如何应用
opencv 在指定位置
显示
图像
如何将利用OpenCV加载的
图像
显示
在窗口位置? VC++中为了加载各种类型的
图像
,如果自己编,那么工作量很大,因为要面对的
图像
类型太多了(bmp,
jpeg
,jpg,gif,tif,ppm,pgm,png,pic等等)。我们不可能也没有必要针对每一种类型编出我们自己的编解码器,更为方便的方式是使用各种工具。一方面可以使用CXImage等类似库;另一方面可以利用OpenCV实现。这里我们讨论如何应用
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章