Я пишу небольшую программу, используя ImageMagick в Eclipse IDE. Моя программа компилируется и работает нормально, но каждый вызов display() (метод, который видит изображение во всплывающем окне) не влияет. Через командную строку одни и те же вызовы работают нормально, поэтому я предполагаю, что что-то не так с Eclipse. Я ценю любую помощь заранее.
Метод Magick::Image::display
ожидает, что переменная DISPLAY
будет определена в среде выполнения. В Eclipse, в конфигурации run/debug, вы должны установить значение среды независимо от имени хоста оконного менеджера X11. Вы можете узнать это значение, эхо-сигнал в командной строке.
#!/bin/sh
echo $DISPLAY
Для вашего приложения может быть разумным добавить обработку ошибок или параметр конфигурации пользователя.
#include <cstdlib>
// ...
const char * env_display = getenv("DISPLAY");
if ( env_display == NULL ) {
// Error, or attempt to recover
}
Вы также можете установить имя хоста X11 в объекте изображения с помощью Magick::Image::x11Display
.
Magick++
илиMagickCore
API?