求bmp转png的代码 下了CxImage,但没找到哪个地方是转换的大家谁有这方面的资料分享下吧,感谢啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/fengbingchun/article/details/6426836Load 、Save、CXIMAGE_FORMAT_PNG即可 IStream* CDXGraph::StretchPic(const WCHAR *path, const WCHAR *format, int width, int heigh){ Bitmap orgpic(path) ; Image *Despic = orgpic.GetThumbnailImage(width,heigh) ; IStream* pstm = NULL; CLSID encoderClsid ; GetEncoderClsid(format,&encoderClsid) ; CString name; name = "Debug\\1.bmp"; Status sta =Despic->Save(name.AllocSysString(),&encoderClsid,0) ; //Despic->Save(pstm, &encoderClsid,0); if (sta == Ok) { return pstm ; } return NULL ; }int CDXGraph::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; GetImageEncodersSize(&num, &size); if(size == 0) return -1; // Failure pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo == NULL) return -1; // Failure GetImageEncoders(num, size, pImageCodecInfo); for(UINT j = 0; j < num; ++j) { if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 ) { *pClsid = pImageCodecInfo[j].Clsid; free(pImageCodecInfo); return j; // Success } } free(pImageCodecInfo); return -1; }调用方法StretchPic(L"1.bmp",L"image/png",200,200) Load 、Save、CXIMAGE_FORMAT_PNG++ "PNG CXIMAGE_SUPPORT_PNG png,zlib 104"我没有找到png.dll和zlib.dll两个库,只有lib的请问都要加哪些文件到工程里呢,我都加进去了,结果错误一堆感谢啊 gdi+ 嘛bmp png jpg 互换. 支持缩放.质量 我试了下,用cximage压缩的图片数据量小 倒是. gdi+的图片算法比较旧了. jpg有多代格式. gdi+压缩出的jpg比其他同软件转换出的jpg大很多. 我也是用gdi+的方法实现的,先将bmp图片读入内存位图,再将内存位图直接保存为png格式 如果用mfc的类的话#include "atlimage.h" CImage image; image.Load(_T("D:\\desktop\\test1\\photo\\test\\test\\1.bmp")); image.Save(_T("D:\\desktop\\test1\\photo\\test\\test\\1.png")); 如何给指定的IP发文件? 恭喜 群里的朋友 少 喜得千金 == 散分 vc 默认的映像方式是什么 如何调用dll中定义的函数? GDI+如何实现XOR绘图? Socket的几个问题 属性页中的按钮如何控制对话框中的EDIT控件?[我是菜鸟,在线等] 如何弹出含有进度条的对话框? 哪位兄弟帮忙开一个可以上传文件的ftp,让我为另一位兄弟传一份《Visual C++实现MPEG/JPEG编解码技术》所附代码 请问,LPCTSTR和LPCSTR有什么区别?LPSTR哪? 单步调试的时候突然发现event的句柄变成0xcdcdcdcd opengl对话框中messagebox等不能正常弹出
IStream* CDXGraph::StretchPic(const WCHAR *path, const WCHAR *format, int width, int heigh)
{
Bitmap orgpic(path) ;
Image *Despic = orgpic.GetThumbnailImage(width,heigh) ;
IStream* pstm = NULL;
CLSID encoderClsid ;
GetEncoderClsid(format,&encoderClsid) ;
CString name;
name = "Debug\\1.bmp";
Status sta =Despic->Save(name.AllocSysString(),&encoderClsid,0) ; //Despic->Save(pstm, &encoderClsid,0);
if (sta == Ok)
{
return pstm ;
}
return NULL ;
}int CDXGraph::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;
GetImageEncodersSize(&num, &size);
if(size == 0)
return -1; // Failure
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1; // Failure
GetImageEncoders(num, size, pImageCodecInfo);
for(UINT j = 0; j < num; ++j)
{
if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j; // Success
}
}
free(pImageCodecInfo);
return -1;
}调用方法
StretchPic(L"1.bmp",L"image/png",200,200)
++
我没有找到png.dll和zlib.dll两个库,只有lib的
请问都要加哪些文件到工程里呢,我都加进去了,结果错误一堆
感谢啊
bmp png jpg 互换. 支持缩放.质量
#include "atlimage.h"
CImage image;
image.Load(_T("D:\\desktop\\test1\\photo\\test\\test\\1.bmp"));
image.Save(_T("D:\\desktop\\test1\\photo\\test\\test\\1.png"));