利用GDI+图片格式转换(例如BMP转PNG)
来源:互联网 发布:js把数字转换成日期 编辑:程序博客网 时间:2024/05/21 10:55
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus")
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
UINT num = 0; // number of image encoders
UINT size = 0; // size of the image encoder array in bytes
ImageCodecInfo* pImageCodecInfo = NULL;
//2.获取GDI+支持的图像格式编码器种类数以及ImageCodecInfo数组的存放大小
GetImageEncodersSize(&num, &size);
if(size == 0)
return -1; // Failure
//3.为ImageCodecInfo数组分配足额空间
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1; // Failure
//4.获取所有的图像编码器信息
GetImageEncoders(num, size, pImageCodecInfo);
//5.查找符合的图像编码器的Clsid
for(UINT j = 0; j < num; ++j)
{
if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j; // Success
}
}
//6.释放步骤3分配的内存
free(pImageCodecInfo);
return -1; // Failure
}
INT main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
//1.初始化GDI+,以便后续的GDI+函数可以成功调用
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
CLSID encoderClsid;
Status stat;
//7.创建Image对象并加载图片
Image* image = new Image(L"f://11.bmp");
// Get the CLSID of the PNG encoder.
GetEncoderClsid(L"image/png", &encoderClsid);
//8.调用Image.Save方法进行图片格式转换,并把步骤3)得到的图像编码器Clsid传递给它
stat = image->Save(L"11.png", &encoderClsid, NULL);
if(stat == Ok)
printf("Bird.png was saved successfully/n");
else
printf("Failure: stat = %d/n", stat);
//9.释放Image对象
delete image;
//10.清理所有GDI+资源
GdiplusShutdown(gdiplusToken);
return 0;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuzl32/archive/2010/03/18/5389919.aspx
- 利用GDI+图片格式转换(例如BMP转PNG)
- 利用GDI+图片格式转换(例如BMP转PNG)
- GDI+实现图片格式转换(bmp、jpeg、gif、tiff、png) .
- GDI+实现图片格式转换(bmp、jpeg、gif、tiff、png)
- GDI+实现图片格式转换(bmp、jpeg、gif、tiff、png)
- 图片格式转换,BMP转JPG等
- 使用GDI+转换图片格式
- 利用GDI+实现常见图片格式任意转换的函数
- C# 图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
- 加载多种图片格式(gif,jpg,png.bmp)
- JPG png GIF BMP图片格式的区别
- 多种图片格式转换成BMP
- 利用GDI+实现BMP、JPEG、GIF图像格式的转换
- bitmap转bmp图片格式
- GDI+实例教程之: 转换Image(BMP,JPG,GIF,PNG等) 到MetaFile(EMF等) 格式
- BMP、GIF、JPEG、PNG以及其他图片格式简介
- 常见图片格式简单分析总结--JPG、PNG、GIF、BMP
- png/gif/jpeg/bmp图片格式的简易文档
- 文件上传原理实现
- 怎么在北京生存下去呢?
- 全面学习ORACLE Scheduler特性(4)创建和管理Schedule
- .net同一个解决方案下面多个web项目。目的为了较大项目分解模块,各自编译开发!
- linq之like操作
- 利用GDI+图片格式转换(例如BMP转PNG)
- "Unable to get buffer of resource asset file"问题的解决
- 过程改进日记之学习Scrum2010-8-12 改变,从身边开始
- Hadoop应用程序性能调优案例分析——CSDN TUP第四期精彩摘要
- 病毒与软、硬件故障的区别和联系
- 过程改进日记之学习Scrum2010-8-13 每日晨会(一)
- real user ID,effective user ID,saved set user ID
- Ext-grid应用:stroe的lastOption作用
- 过程改进日记之学习Scrum2010-8-16 每日晨会(二)