c++調用ImageMagick進行圖片格式轉換

1.源碼實現

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <wand/MagickWand.h>

using namespace std;

int main(int argc, char **argv)
{
    const char *input = "./1.png";
    const char *output = "./1.jpg";

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

    input = argv[1];
    output = argv[2];

    MagickWand *magick_wand = NULL;
    MagickBooleanType status;

    //初始化MagickWand
    MagickWandGenesis();

    //創建一個MagickWand實例
    magick_wand = NewMagickWand();

    //讀取輸入圖片
    status = MagickReadImage(magick_wand, input);
    if(status == MagickFalse)
    {
        cout << "open image failed" << endl;

        magick_wand = DestroyMagickWand(magick_wand);

        MagickWandTerminus();

        return -1;
    }

    //保存圖片爲
    status = MagickWriteImages(magick_wand, output, MagickTrue);
    if(status == MagickFalse)
    {
        cout << "write image failed" << endl;

        magick_wand = DestroyMagickWand(magick_wand);

        MagickWandTerminus();

        return -1;
    }

    //銷燬MagickWand實例
    magick_wand = DestroyMagickWand(magick_wand);

    //結束MagickWand
    MagickWandTerminus();

    return 0;
}

2.編譯源碼

$ g++ -o test test.cpp -I/usr/local/include/ImageMagick-6 -std=c++11 -L/usr/local/lib -lMagickWand-6.Q16 -Wl,-rpath=/usr/local/lib

3.運行及其結果

$ ./test 1.jpg 1.png
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章