Graphicsmagick C++ API

cla*_*rkk 7 c++ imagemagick graphicsmagick

我想使用C++ API graphicsmagick

我需要直接转换图像数据,OpenCV并使用与第4组压缩graphicsmagick一样保存文件tiff

命令行

gm convert input -type bilevel -monochrome -compress group4 output.tif
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一些代码(见上面的命令行)简单地将输出转换从OpenCVtiff与组4压缩

我是C++的新手:)

测试graphicsmagick

我正在努力graphicsmagick工作.在docs中找到了一个非常简单的代码

我找不到 Magick++.h

locate /Magick++.h 没有回报

但是已经安装了graphicsmagick

# gm -version
GraphicsMagick 1.3.20 2014-08-16 Q8 http://www.GraphicsMagick.org/
Run Code Online (Sandbox Code Playgroud)

/*
 *  Compile
 *  g++ gm_test.cpp -o gm_test `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
 */

#include <Magick++.h>

using namespace std;
using namespace Magick;

int main(int argc, char **argv){
    InitializeMagick(*argv);
    Image image( "100x100", "white" );
    image.pixelColor( 49, 49, "red" );
    image.write( "red_pixel.png" );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

# g++ gm_test.cpp -o gm_test `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
-bash: GraphicsMagick++-config: command not found
gm_test.cpp:6:22: fatal error: Magick++.h: No such file or directory
 #include <Magick++.h>
                      ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

更新的答案

尝试查找GraphicsMagick-config在您安装GraphicsMagick的目录下调用的文件,如下所示:

find /usr -name "GraphicsMagick-config"
Run Code Online (Sandbox Code Playgroud)

当你找到它时,你可以要求它告诉你编译器包含这样的标志和链接器标志:

/usr/some/path/GraphicsMagick-config --cflags --libs
Run Code Online (Sandbox Code Playgroud)

然后你可以编译:

gcc $(/usr/some/path/GraphicsMagick-config --cflags --libs) somefile.c -o somefile
Run Code Online (Sandbox Code Playgroud)

原始答案

查看您安装GraphicsMagick的目录,查找以文件结尾.pcpkg-config文件,例如

find /usr/local -iname "graphic*.pc"
Run Code Online (Sandbox Code Playgroud)

然后传递此文件以pkg-config获取您应该用于编译的CFLAGS和LIBS.所以,如果您graphicsmagick.pc/usr/local/Cellar/graphicsmagick/1.3.23/lib/pkgconfig/GraphicsMagick.pc,请使用:

pkg-config --cflags --libs /usr/local/Cellar/graphicsmagick/1.3.23/lib/pkgconfig/GraphicsMagick.pc
Run Code Online (Sandbox Code Playgroud)

哪个会给你这个:

/usr/local/Cellar/graphicsmagick/1.3.23/lib/pkgconfig/GraphicsMagick.pc
-I/usr/local/Cellar/graphicsmagick/1.3.23/include/GraphicsMagick -L/usr/local/Cellar/graphicsmagick/1.3.23/lib -lGraphicsMagick
Run Code Online (Sandbox Code Playgroud)

然后你将编译:

gcc $(pkg-config --cflags --libs somefile.c -o somefile
Run Code Online (Sandbox Code Playgroud)