使用ImageMagicK在vc ++中出现模糊错误

时间:2015-10-25 21:53:02

标签: c++ imagemagick

我有一个问题。 当我在vs2010 c ++表单项目中使用ImageMagicK库编译时。

我有一些像这样的错误代码。

1> ex3.cpp(22):错误C2872:'图片':模棱两可的符号

1>可能是'c:\ program files \ imagemagick-6.8.6-q16 \ include \ Magick ++ / Image.h(55):Magick :: Image'

1>或'c:\ program files \ reference assemblies \ microsoft \ framework.netframework \ v4.0 \ system.drawing.dll:System :: Drawing :: Image'

该文件如下所示:

// ex3.cpp : main project file.

#include "stdafx.h"
#include "Form1.h"
#include <Magick++.h>


using namespace ex3;
using namespace Magick; 

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    // Enabling Windows XP visual effects before any controls are created
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 
    // Create the main window and run it
    Application::Run(gcnew Form1());


    InitializeMagick(*argv);
    Image master;
    master.read("C:₩₩abc.jpg");
    master.addNoise(ImpulseNoise);
    master.write("C:₩₩abc_magic.jpg");
    return 0;
}

2 个答案:

答案 0 :(得分:0)

在对网络视线进行研究之后。 vc ++似乎不是imagemagick软件套件的选择。没有看到vc ++作为接口

答案 1 :(得分:0)

这是using namespace xxx导致冲突的示例。在线

Image master;

编译器无法判断您是Magick::Image还是.NET Image

您可以通过显式选择您可能需要的那个并写

Magick::Image master;

这正是首先发明命名空间的原因,以及为什么强烈建议using namespace xxx添加到文件中,只是为了节省一些输入。

就像Victor Torres在他的回答中所说,不确定ImageMagick是否适用于托管C ++,但这是另一个问题。