Windowsでは、さまざまな画像形式のC ++変換

C ++画像フォーマット変換

静的ライブラリを使用して、インクルードファイルとlibファイルを変換し、プロジェクトにコピーし、ヘッダーファイルを追加します

#include "stdafx.h"
#include "include/ximage.h"

#pragma comment(lib,"lib/cximage.lib")  
#pragma comment(lib,"lib/png.lib")  
#pragma comment(lib,"lib/jasper.lib")  
#pragma comment(lib,"lib/jbig.lib")  
#pragma comment(lib,"lib/Jpeg.lib")  
#pragma comment(lib,"lib/libpsd.lib")  
#pragma comment(lib,"lib/libdcr.lib")  
#pragma comment(lib,"lib/mng.lib")  
#pragma comment(lib,"lib/Tiff.lib")  
#pragma comment(lib,"lib/zlib.lib") 

int PictureFormatTrans(char *fromPath,char *toPath)
{
    int filelen;
    char *fromData;

    FILE *pf = fopen(fromPath,"rb");
    if(pf == NULL)
    {
        printf("%s 不存在",fromPath);
        return -1;
    }
    else
    {
        fseek(pf,0,SEEK_END);
        filelen = ftell(pf);
        fseek(pf,0,SEEK_SET);
    }

    fromData = (char *)malloc(sizeof(char)*filelen);
    fread(fromData,1,filelen,pf);
    fclose(pf);

    CxImage m_Image((BYTE*)fromData,filelen,CXIMAGE_FORMAT_JPG); //转换前的格式,各种格式均可,如果是JPG,填CXIMAGE_FORMAT_JPG
    if(m_Image.IsValid()) //有效
    {
        int size = 0;
        BYTE* buffer = 0;
        int width = m_Image.GetWidth();
        int height = m_Image.GetHeight();
        int xdpi = m_Image.GetXDPI();
        int ydpi = m_Image.GetYDPI();
        m_Image.SetXDPI(180);
        m_Image.SetYDPI(180);
        int newWidth = width*180/xdpi;
        int newHeight = height*180/ydpi;
        m_Image.QIShrink(newWidth,newHeight);
        m_Image.Save(toPath,CXIMAGE_FORMAT_BMP); //转换后的格式,各种格式均可,如果是BMP,填CXIMAGE_FORMAT_BMP
    }
    return 0;
}

コンパイラが次のエラーを報告した場合
ここに写真の説明を書いてください
解決策:プロパティ-「構成プロパティ-」C / C ++-「コード生成-」ランタイム、代わりにマルチスレッド(/ MT)。

おすすめ

転載: blog.csdn.net/sxtdzj/article/details/80886078