请给我详细的方法
如果是用其他库,请给我详细的例子和调用方法,我的不是MFC编程,是API的
如果是用其他库,请给我详细的例子和调用方法,我的不是MFC编程,是API的
解决方案 »
- 想找个vc的老师
- 如何得到从ListView控件派生出的控件的数据(非本进程)
- 高手帮忙,表格排序! 今天不解决,明天老板打屁屁了!
- C/C++编程技术群 7516449
- VC.Net 签出文件后, 文件上的小钩有个惊叹号 (在线等候)
- 在用"MFC App Wizard(exe)"向导生成的单文档应用程序中,如何取得窗体的handle??
- 如何得到console window 的句柄?
- 使用文件映射對一個ini文件進行操作,我想將ini文件中"="兩邊的字串對調,如何辦到呢?
- 关闭窗口
- 岂有此理,ClassWizard不听使唤!!(新手的怒)
- vc+access查询表行数用哪个函数
- 怎样用cxImage类将BMP位图转化为PNG格式图象
第一个例子是读写文件方式转图像格式的
第二个例子是Bitmap通过IStream接口读取内存图像,写也类似你把两个例子结合起来就可以了
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;INT GetEncoderClsid(const WCHAR* format, CLSID* pClsid); // helper functionINT main()
{
// Initialize GDI+.
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); CLSID encoderClsid;
Status stat;
Image* image = new Image(L"Bird.bmp"); // Get the CLSID of the PNG encoder.
GetEncoderClsid(L"image/png", &encoderClsid); stat = image->Save(L"Bird.png", &encoderClsid, NULL); if(stat == Ok)
printf("Bird.png was saved successfully\n");
else
printf("Failure: stat = %d\n", stat); delete image;
GdiplusShutdown(gdiplusToken);
return 0;
}HGLOBAL hResourceBuffer = GlobalAlloc(GMEM_MOVEABLE, dwResSize);
if(hResourceBuffer != NULL)
{
LPVOID lpResourceBuffer = GlobalLock(hResourceBuffer);
if(lpResourceBuffer != NULL)
{
CopyMemory(lpResourceBuffer, lpResourceData, dwResSize);
IStream* piStream = NULL;
if(CreateStreamOnHGlobal(hResourceBuffer, FALSE, &piStream) == S_OK)
{
pImage = Bitmap::FromStream(piStream);
piStream->Release();
}
GlobalUnlock(hResourceBuffer);
}
GlobalFree(hResourceBuffer);
}