IImagingFactory ,各种格式的图片解码
2010-06-21 17:14
183 查看
看完网上兄弟们的文章,自己试验了一下。
1 #include <initguid.h>
2 #include <imgguids.h>
3 #include <imaging.h>
4 MyWnd::MyDraw()
5 {
6
7 IImagingFactory* pImgFac;
8 IImage* m_pImage;
9 ImageInfo m_pImageInfo;
10 if(FAILED(CoCreateInstance( CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void**)&pImgFac)))
11 return TRUE;
12
13 HRSRC hRes=FindResource(m_hWnd,
14 MAKEINTRESOURCE(IDR_XXX),
15 RT_RCDATA); //IDR_XXX资源号
16
17 if (hRes==NULL)
18 return FALSE;
19 HGLOBAL hGlobal=LoadResource(m_hWnd,hRes);
20 DWORD size=SizeofResource(m_hWnd,hRes);
21 LPVOID pData=LockResource(hGlobal);
22
23 if (pImgFac == NULL || pData == NULL || size == 0)
24 return NULL;
25 if (SUCCEEDED(pImgFac->CreateImageFromBuffer(pData, size, BufferDisposalFlagGlobalFree , &m_pImage)))
26 {
27 m_pImage->GetImageInfo(&m_pImageInfo);
28 HDC hdc = ::GetDC(NULL);
29 memHdc = ::CreateCompatibleDC(hdc);
30 hImg = CreateCompatibleBitmap(hdc,m_pImageInfo.Width,m_pImageInfo.Height);
31 SelectObject(memHdc,hImg);
32
33 rsWeight=m_pImageInfo.Width;
34 rsHight=m_pImageInfo.Height;
35 RECT rect = { 0, 0, m_pImageInfo.Width,m_pImageInfo.Height};
36 m_pImage->Draw(memHdc,&rect,NULL);
37 }
38 else
39 {
40 return NULL;
41 }
42 return TRUE;
在direct draw里面,还是有很多很有意思的功能的。
1 #include <initguid.h>
2 #include <imgguids.h>
3 #include <imaging.h>
4 MyWnd::MyDraw()
5 {
6
7 IImagingFactory* pImgFac;
8 IImage* m_pImage;
9 ImageInfo m_pImageInfo;
10 if(FAILED(CoCreateInstance( CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IImagingFactory, (void**)&pImgFac)))
11 return TRUE;
12
13 HRSRC hRes=FindResource(m_hWnd,
14 MAKEINTRESOURCE(IDR_XXX),
15 RT_RCDATA); //IDR_XXX资源号
16
17 if (hRes==NULL)
18 return FALSE;
19 HGLOBAL hGlobal=LoadResource(m_hWnd,hRes);
20 DWORD size=SizeofResource(m_hWnd,hRes);
21 LPVOID pData=LockResource(hGlobal);
22
23 if (pImgFac == NULL || pData == NULL || size == 0)
24 return NULL;
25 if (SUCCEEDED(pImgFac->CreateImageFromBuffer(pData, size, BufferDisposalFlagGlobalFree , &m_pImage)))
26 {
27 m_pImage->GetImageInfo(&m_pImageInfo);
28 HDC hdc = ::GetDC(NULL);
29 memHdc = ::CreateCompatibleDC(hdc);
30 hImg = CreateCompatibleBitmap(hdc,m_pImageInfo.Width,m_pImageInfo.Height);
31 SelectObject(memHdc,hImg);
32
33 rsWeight=m_pImageInfo.Width;
34 rsHight=m_pImageInfo.Height;
35 RECT rect = { 0, 0, m_pImageInfo.Width,m_pImageInfo.Height};
36 m_pImage->Draw(memHdc,&rect,NULL);
37 }
38 else
39 {
40 return NULL;
41 }
42 return TRUE;
在direct draw里面,还是有很多很有意思的功能的。
相关文章推荐
- 利用 LibWebP-NET 解码与编码 WebP 格式图片
- 各种音视频编解码学习——————详解 h264 ,mpeg4 ,aac 等所有音视频格式
- 如何在线生成Word文档?一种极简,极强大的方法,支持图片表格等各种格式
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- 转载 Android中使用BitmapFactory的decodeStream()方法解码图片失败问题
- 各种图片编码格式详解
- 详细介绍各种常见格式的图片
- libjpeg库编码图片为jpg(ffmpeg解码视频存储图片:RGB格式位图压缩为jpg格式图片)
- 笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- Android 4K高清图片解码显示(2)BitmapFactory常用Bitmap的解码方法
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- VS2010 用CxImage读入各种图片格式后在内存中转换为HBITMAP位图
- 前端vue传过来的是base64格式(解码变成二进制)的图片怎么做【多图上传】
- android中使用BitmapFactory的decodeStream()方法解码图片失败问题
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- Opencv读取各种格式图片,在TBitmap上面重绘
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式