如何启用 libMagick++ 以保存 .png 文件格式

How to enable libMagick++ in order to save .png file format

我写了一个c++程序,可以读取、添加噪声和保存图像。我可以将图像保存为 .bmp,但是当尝试将图像保存为 .png 时,会弹出错误提示 ...无法保存文件 'noisy-canon.png' 除非启用 libMagick++

查看下面我的代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <Magick++.h>
#include <CImg.h>

using namespace std;
using namespace cimg_library;

int main()
{
        //image file
        CImg<unsigned char> image("milla.png");
        image.noise(5,2);
        image.save_magick("noisy-canon.png");
        CImgDisplay main_disp(image, "Image with Pepper noise",0);
        while (!main_disp.is_closed())
            {
                main_disp.wait();
            }
        getchar();
        return 0;
}

我也尝试过使用 save_cimg()。它创建一个文件,错误提示

...除非启用 zlib,否则无法将压缩数据保存在文件 'noisy_canon.png' 中,以未压缩的方式保存它们。

下面是我的代码;

(...)

image.save_cimg("noisy_canon.png",1);

(...)

以下尝试均未成功;

//above cimg.h "this gives error"
#define cimg_use_png  
#include <CImg.h>

//tried below cimg.h "no error, but doesn't work"
#include <CImg.h>
#define cimg_use_png

提前致谢

我找到了 libMagick++ 的替代品。由于安装在机器上,所以我使用terminal/command版本进行转换。

system("convert input.jpg output.png");