随笔-17  评论-64  文章-79  trackbacks-1
#define  ULONG_PTR  void*
#include<gdiplus.h>  
#include<GdiPlusEnums.h>
#pragma comment(lib,"GdiPlus.lib")
using namespace 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
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR           gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
   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);
   GdiplusShutdown(gdiplusToken);
   return -1;  // Failure 

 
void BMP2JPG(CString strBMPFile,CString strJPGFile)
{
    CLSID  encoderClsid;
    WCHAR  strGuid[39];
    if(GetEncoderClsid(L"image/jpeg", &encoderClsid) >= 0)
    StringFromGUID2(encoderClsid, strGuid, 39);
    Image image(strBMPFile.AllocSysString());
    image.Save(strJPGFile.AllocSysString(),&encoderClsid,NULL);
}
posted on 2007-02-27 19:26 飞鸟 阅读(2340) 评论(7)  编辑  收藏 所属分类: VC

评论:
# re: bmp转JPG 2008-03-26 13:43 | 就不告诉你
垃圾,说是java,写的却是c的代码  回复  更多评论
  
# re: bmp转JPG 2008-03-26 14:13 | 飞鸟
你是不是傻啊,没看到是分在VC类里面,我看你还是不要学编程了  回复  更多评论
  
# re: bmp转JPG 2008-03-27 00:21 | 21
gyuk  回复  更多评论
  
# re: bmp转JPG 2008-04-26 22:10 | HE YOU BING
NI HAO   回复  更多评论
  
# re: bmp转JPG 2008-11-23 03:57 | changzihao
155+  回复  更多评论
  
# re: bmp转JPG[未登录] 2009-08-20 15:35 | 无名
@就不告诉你
脑残  回复  更多评论
  
# re: bmp转JPG 2010-02-24 00:04 | lya.79
他應該是看到 "飞鸟JAVA" 這東西,所以誤以為怎會放在java區裡吧,誤會一場哈。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: