如题谢谢大家
解决方案 »
- 求助:C#中使用API的GetDlgItemText,求详解
- 想在程序中嵌入flash,但是为了安全方便考虑想把flash压缩加密然后动态读出来
- 多文档显示问题
- 要饿死了。救俺。
- [VC新手系列] 关于工具条
- 關於SendMessage 函數問題?
- 急!急!急!材料力学上机需要编程,哪位高手能帮忙解决啊?
- MFC应用程序运行自动关闭(从注册表调会出现,但是直接运行不会关闭)
- 如何用VC++显示多种格式图像,比如:gif、jpg等等
- 请问如何在VC中返回可执行文件所带的参数?
- 请问你知不知道哪里有聊天室的源代码?
- 我得到了一个位图的句柄HBITMAP,想用StretchDIBits函数显示出来,请问该位图的BITMAPINFO结构体指针怎么获得?
Image* image = Image::FromFile(L"d:\\aa.jpg");
//生成缩略图
Image* thumbnailImage = image->GetThumbnailImage(10,10);
//保存
CLSID clsid;
int clsidResult = GetImageCLSID(L"image/bmp",&clsid); if(clsidResult)
{
thumbnailImage->Save(L"d:\\thumbnailImage.bmp", &clsid, NULL);
} //附:GetImageCLSID方法
//得到格式为format的图像文件的编码值,访问该格式图像的COM组件的GUID值保存在pCLSID中
int GetImageCLSID(const WCHAR* format, CLSID* pCLSID)
{
UINT num = 0;
UINT size = 0;
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size); if(size == 0)
{
return FALSE; // 编码信息不可用
} //分配内存
pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo == NULL)
{
return FALSE; // 分配失败
} //获得系统中可用的编码方式的所有信息
GetImageEncoders(num, size, pImageCodecInfo); //在可用编码信息中查找format格式是否被支持
for(UINT i = 0; i < num; ++i)
{ //MimeType:编码方式的具体描述
if( wcscmp(pImageCodecInfo[i].MimeType, format) == 0 )
{
*pCLSID = pImageCodecInfo[i].Clsid;
free(pImageCodecInfo);
return TRUE;
}
}
free(pImageCodecInfo);
return FALSE;
}
郁闷
用StretchBlt不行么?
还有 这个运行出错
http://www.yesky.com/282/1772782_1.shtml
http://www.yesky.com/163/1769663_2.shtml
HBITMAP hBmp(pBmp);
Bitmap* pBmp = Bitmap::FromHBitmap(hBmp);然后调用上面的存储上方法
CLSID clsid;
int clsidResult = GetImageCLSID(L"image/jpeg",&clsid); if(clsidResult)
{
pBmp->Save(L"d:\\bmp.jpg", &clsid, NULL);
}
然后,加入相应的头文件、gdiplus.lib、gdiplus.dll,然后在主程序类里面加上以下成员:
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_gdiplusToken;
在InitInstance()里面加上
GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);
然后就可以使用gdi+了
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2