VS使用ImageMagickpp库建立图像

⌚Time: 2022-11-07 04:19:24

👨‍💻Author: Jack Ge

官网下载

https://imagemagick.org/script/download.php

下载带dll.exe的共享库版本,我下载ImageMagick-7.1.0-52-Q16-HDRI-x86-dll.exe

下载完成后安装,勾选legacy utilties和development headers and libraries for c and c++

新建vs项目,配置项目属性,配置头文件附加包含目录是imagemagick安装文件夹下的include目录

另外可能需要stdint.h文件,见附件下载。并将其所在目录也添加进去

库文件的目录是imagemagick安装文件夹下的lib目录

附加依赖项是lib目录下的所有文件

编辑代码


#include "stdafx.h"

#include <Magick++.h>

#include <iostream>



int _tmain(int argc, _TCHAR* argv[])

{

    char buffer[1024]={0};

    wcstombs(buffer,  *argv,sizeof(buffer));

    Magick::InitializeMagick(buffer);//使用Magick++之前必须要使用InitializeMagick方法初始化库,参数是程序路径



//  try

//  {

        // 图像颜色

        const Magick::ColorRGB color(0.1, 0.3, 1);

        // 图像大小(100x100)

        const Magick::Geometry geometry(100, 100);

        // 创建图像

        Magick::Image image(geometry,color);

        //image.magick("RGB");

        for (int i=0;i<100;i++)

        {

            image.pixelColor( 49, i, "red" );

            image.pixelColor( 50, i, "red" );

            image.pixelColor( 51, i, "red" );

            image.pixelColor( 52, i, "red" );

            image.pixelColor( 53, i, "red" );

        }

        image.write("OutImg.png");

//  }

//  catch (Magick::Exception& error)

//  {

//      std::cout << "exception: " << error.what() << std::endl;

//  }

    system("pause");

    return 0;

}

但凡我加try-catch异常捕获,程序总会触发异常,索性不加了,也能出现正常的结果,这是程序生成的一幅蓝色照片外加一条竖线

注意:程序运行依赖imagemagick的安装目录的modules\coders文件夹

附件:C99HEADER