如何在控件上加载jpeg图象

chongwenwang 2007-10-10 08:55:45
如何将jpeg格式的图象转换成bmp图象在控件上显示出来
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyg_zy 2007-10-16
  • 打赏
  • 举报
回复
用GDI+显示吧。要求开发环境.net2003以上。示例代码如下:
#include "atlImage.h"
/**
* 在目标DC的目标矩形rc中显示pJpeg文件的JPEG图象,并保存为bmp
*/
void DisplayJpeg( char *pJpgeFile,HDC hdc,RECT & rc )
{

/**
* imag对象从pJpgeFile文件中加载图像并绘制到目标DC的目标矩形rc中
*/
CImage imag;
imag.Load( pJpgeFile );
imag.Draw( hdc, rc );

/**
* 保存为bmp图片
*/
imag.Save( "c:\\1.bmp" );

}
Kudeet 2007-10-15
  • 打赏
  • 举报
回复
void   CMenuDlg::LoadPictureFromFile(LPCTSTR   szFile,   CBitmap   *pBitmap)//szFile是jpg文件名,打开时最好到debug目录下,避免路径错误   
{
// open file
HANDLE hFile = CreateFile(szFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
// _ASSERTE(INVALID_HANDLE_VALUE != hFile);

// get file size
DWORD dwFileSize = GetFileSize(hFile, NULL);
_ASSERTE(-1 != dwFileSize);

LPVOID pvData = NULL;
// alloc memory based on file size
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
_ASSERTE(NULL != hGlobal);

pvData = GlobalLock(hGlobal);
_ASSERTE(NULL != pvData);

DWORD dwBytesRead = 0;
// read file and store in global memory
BOOL bRead = ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);
_ASSERTE(FALSE != bRead);
GlobalUnlock(hGlobal);
CloseHandle(hFile);

LPSTREAM pstm = NULL;
// create IStream* from global memory
HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);
_ASSERTE(SUCCEEDED(hr) && pstm);

// Create IPicture from image file
LPPICTURE gpPicture;

hr = ::OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);

_ASSERTE(SUCCEEDED(hr) && gpPicture);
pstm->Release();

OLE_HANDLE m_picHandle;

gpPicture->get_Handle(&m_picHandle);
pBitmap->DeleteObject();
pBitmap->Attach((HGDIOBJ) m_picHandle);


}
ToperRay 2007-10-10
  • 打赏
  • 举报
回复
CXImage

display函数
mxm324 2007-10-10
  • 打赏
  • 举报
回复
一般你可以用一些写好的类库做这些事情,,如:CXImage 可以到www.codeproject.com.
不过你也可以自己研究jpeg的编码格式..自己写转换的...

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧