Я хочу использовать C ++ API для graphicsmagick
Мне нужно конвертировать данные изображения непосредственно из OpenCV
и использовать graphicsmagick
сохранить файл как tiff
с компрессией группы 4
Командная строка
gm convert input -type bilevel -monochrome -compress group4 output.tif
Может ли кто-нибудь предоставить некоторый код (см. Приведенную выше командную строку), чтобы просто преобразовать вывод из OpenCV
в tiff
с компрессией группы 4
Я новичок в C ++ 🙂
Я пытаюсь сделать graphicsmagick
Работа. Нашел очень простой код в документации
Я не могу найти Magick++.h
locate /Magick++.h
ничего не возвращает
но graphicsmagick установлен
# gm -version
GraphicsMagick 1.3.20 2014-08-16 Q8 http://www.GraphicsMagick.org/
/*
* 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;
}
# 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.
Обновленный ответ
Попробуйте найти файл с именем GraphicsMagick-config
в каталоге, где вы установили GraphicsMagick, вот так:
find /usr -name "GraphicsMagick-config"
Когда вы найдете это, вы можете попросить его сообщить вам, что компилятор включает флаги и флаги компоновщика, например так:
/usr/some/path/GraphicsMagick-config --cflags --libs
Затем вы можете скомпилировать с:
gcc $(/usr/some/path/GraphicsMagick-config --cflags --libs) somefile.c -o somefile
Оригинальный ответ
Найдите в каталоге, где вы установили GraphicsMagick, файл, заканчивающийся на .pc
, какой pkg-config
файл, например
find /usr/local -iname "graphic*.pc"
Затем передайте этот файл 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
что даст вам это:
/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
Тогда вы бы скомпилировали с:
gcc $(pkg-config --cflags --libs somefile.c -o somefile
я не знаю, полезно ли это, в последний день у меня та же ошибка: нет волшебства ++. h, когда я компилирую ImageMagick (не graphicsmagick).
поэтому я следую инструкциям на официальном сайте, чтобы переустановить ImageMagick, и, наконец, у меня получится.
1 http://www.imagemagick.org/script/install-source.php
2 http://www.imagemagick.org/script/magick++.php
я загружаю последний исходный код (ImageMagick6.9) в centOS-6.5
и затем ./configure, make, make install.
Я надеюсь, что это полезно.
На Ubuntu GraphicsMagick++-config
Программа, которую вы используете для получения флагов компиляции, является частью того же пакета, который включает Magick ++. h. Попытка запустить это скажет вам, где его найти:
$ g++ gm_test.cpp -o gm_test `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
The program 'GraphicsMagick++-config' is currently not installed. You can install it by typing:
sudo apt-get install libgraphicsmagick++1-dev
gm_test.cpp:6:22: fatal error: Magick++.h: No such file or directory
компиляция прекращена.
Так что делай, что говорит
$ sudo apt-get install libgraphicsmagick++1-dev
Попробуйте снова скомпилировать, и вы получите другую ошибку, потому что GraphicsMagick++-config
ссылка на удаленную и ненужную библиотеку:
$ g++ gm_test.cpp -o gm_test `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
/usr/bin/ld: cannot find -lwebp
collect2: error: ld returned 1 exit status
Вы можете вручную указать библиотеки libs и compile и link:
$ g++ gm_test.cpp -o gm_test -I/usr/include/GraphicsMagick -Wall -g -fno-strict-aliasing -O2 -pthread -lGraphicsMagick++ -lGraphicsMagick -ljbig
$ ./gm_test
Или вы можете установить необходимую библиотеку:
$ sudo apt-get install libwebp-dev