• 大小: 33KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: C/C++
  • 标签: 图像  转换  BMP  JPG  

资源简介

VC6工程,使用GDI+将BMP图像转换为JPG格式,为了简单起见,工程为命令行模式,有一段代码是网上找的。

资源截图

代码片段和文件信息

#include “windows.h“
#include 
#include 
#include 
#include 


#ifndef   ULONG_PTR  
#define   ULONG_PTR   unsigned   long*  
#endif 

#include       
using   namespace   Gdiplus;      
#pragma   comment(lib   “gdiplus.lib“)   //link   gdiplus.lib 

using namespace std;

int IniBmpToJpg(EncoderParameters *pEncodERParameters CLSID* pClsid)
{
    //-----------------设置EncodERParameters---------------------------------------
    long lQualITy = 80;
    pEncodERParameters->Count = 1;
    //pEncodERParameters->Parameter[0].Guid = EncoderQualITy; //这句可以去掉,去掉以后JPG文件最小化
    pEncodERParameters->Parameter[0].Type = EncoderParameterValueTypeLong;
    pEncodERParameters->Parameter[0].NumberOfValues = 1;
    pEncodERParameters->Parameter[0].Value = &lQualITy;

//--------------------得到当前系统的 Clsid-------------------------------------------------
    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  {
        if(wcscmp(pImageCodecInfo[j].MimeType L“image/jpeg“) == 0)
{
            *pClsid = pImageCodecInfo[j].Clsid;
            free(pImageCodecInfo);
            return j; // Success
        }   
    }
    free(pImageCodecInfo);
    return -1; // Failure


int main(int argcchar* argv[])
{

if (argc<3)
{
return -1;
}

GdiplusStartupInput   gdiplusStartupInput;  
ULONG_PTR                       gdiplusToken;  
Gdiplus::GdiplusStartup(&gdiplusToken   &gdiplusStartupInput   NULL);

USES_CONVERSION;
CLSID guidJPG;
EncoderParameters encodERParams;
IniBmpToJpg(&encodERParams &guidJPG);
Image bmp1(T2W((LPCTSTR)argv[1]));
Status status=bmp1.Save(T2W((LPCTSTR)argv[2]) &guidJPG &encodERParams);
if (status==Ok)
{
cout< }
else
{
cout< }
//Gdiplus::GdiplusShutdown(gdiplusToken); 
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4401  2010-04-15 14:26  ConsoleConvertBMP\ConsoleConvertBMP.dsp

     文件        559  2010-04-15 14:04  ConsoleConvertBMP\ConsoleConvertBMP.dsw

     文件      41984  2010-04-15 14:27  ConsoleConvertBMP\ConsoleConvertBMP.ncb

     文件      55808  2010-04-15 14:27  ConsoleConvertBMP\ConsoleConvertBMP.opt

     文件       1337  2010-04-15 14:27  ConsoleConvertBMP\ConsoleConvertBMP.plg

     文件        125  2010-04-15 14:27  ConsoleConvertBMP\ConsoleConvertBMP.positions

     文件       2411  2010-04-15 14:25  ConsoleConvertBMP\Main.cpp

     文件      65536  2010-04-15 14:27  ConsoleConvertBMP\Release\ConsoleConvertBMP.exe

     目录          0  2010-04-15 17:24  ConsoleConvertBMP\Release

     目录          0  2010-04-15 17:24  ConsoleConvertBMP

----------- ---------  ---------- -----  ----

               172161                    10


评论

共有 条评论