社区
图形处理/算法
帖子详情
怎么用StretchDIBits直接显示JPEG图像?
lpj
2005-08-18 12:25:20
查StretchDIBits的文档,说是对于win98, win2000及以后的版本可以直接显示,
不过它给的例子里CHECKJPEGFORMAT,ExtEscape都需要windows的头文件来定义,
我查了自己的机器上相应的头文件都没有这些关键字的定义。
请问如何才能用StretchDIBits直接显示?速度是不是比使用jpeglib快?
...全文
385
10
打赏
收藏
怎么用StretchDIBits直接显示JPEG图像?
查StretchDIBits的文档,说是对于win98, win2000及以后的版本可以直接显示, 不过它给的例子里CHECKJPEGFORMAT,ExtEscape都需要windows的头文件来定义, 我查了自己的机器上相应的头文件都没有这些关键字的定义。 请问如何才能用StretchDIBits直接显示?速度是不是比使用jpeglib快?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
使用说明 例程
1. **
图像
格式**:在 Windows 98 和 Windows NT 5.0 及更高版本中,`
St
re
tchDI
Bits
` 支持使用
JPEG
格式的
图像
作为源。此时,`lp
Bits
` 指向
JPEG
文件,而 `BITMAPINFOHEADER` 的 `biCompression` 成员应设置为 `BI_...
JPEG
文件读入并
显示
通过使用适当的库(如lib
jpeg
),理解
JPEG
文件结构,以及正确地操作VC++ 6.0中的文件流和设备上下文,我们可以成功地在应用程序中展示
JPEG
图像
。这个过程不仅是技术上的实践,也是对
图像
处理和软件开发能力的提升。
WinCE下利用
JPEG
库对
图像
进行解码
可以利用GDI(Graphics Device Interface)函数,比如`BitBlt`或`
St
re
tchDI
Bits
`,将DIB的内容绘制到窗口的设备上下文(DC)上,从而实现在屏幕上
显示
JPEG
图像
。 在项目文件夹中的"MyImageDesign"可能包含了一些...
VC++编写的DIB
图像
的
显示
在VC++编程环境中,DIB(Device Independent Bitmap)是一种位图格式,用于在不同设备上保持一致的
图像
显示
效果。DIB
图像
的
显示
涉及到Windows API中的
图像
处理技术,特别是GDI(Graphics Device Interface)。本程序...
Mfc
Jpeg
Demo.rar
Mfc
Jpeg
Demo是一个简单的MFC应用示例,其主要目标是展示如何在MFC环境中加载和
显示
JPEG
图像
。这个Demo通常包含以下关键部分: 1. 主窗口类(CMyView或类似):这是
显示
JPEG
图像
的窗口,通常继承自MFC的CView类。在...
图形处理/算法
19,472
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章