CImg не смог распознать формат jpeg

Чтобы загрузить изображение, я установил библиотеку CImg на свой Mac (OSX 10.10). К счастью, мне удалось отобразить изображение в формате bmp, но мне не удалось загрузить и отобразить другие форматы, такие как png или jpg. Затем я установил ImageMagic, который загружается с http://cactuslab.com/imagemagick/, а затем запустил программу. . Ошибки все равно есть.

Мой код:

#include "CImg.h"
#include <stdlib.h>
#define cimg_use_magick
using namespace cimg_library;

int main() {
CImg<unsigned char> image("lena.jpg");

image.display();

return 0;
}

Программа может быть успешно построена в моем Xcode, но она сообщила об ошибке «не удалось распознать формат», я просто не знаю, как это исправить. Спасибо за вашу помощь!


person Shawn    schedule 26.05.2015    source источник
comment
Что вы на самом деле пытаетесь сделать - я имею в виду, какова ваша конечная цель? Я не шучу — я просто подозреваю, что вы, возможно, на неверном пути — или, скажем, есть пути получше, по которым вы могли бы идти.   -  person Mark Setchell    schedule 20.06.2015
comment
@MarkSetchell Я просто хочу использовать cimg для загрузки изображений для моей программы OpenGL. Так как не могу разобраться, обращаюсь к SDL2_image   -  person Shawn    schedule 21.06.2015
comment
Только что заметил... нужно сделать #define cimg_use_magick до #include "CImg.h".   -  person Mark Setchell    schedule 08.09.2017


Ответы (1)


Я предполагаю, что в вашей установке ImageMagick нет необходимых библиотек для чтения файлов JPEG. ImageMagick ссылается на обработчики различных форматов изображений как DELEGATES, поэтому попробуйте эту команду, чтобы узнать, с какими форматами может работать ваша установка ImageMagick:

identify -list configure | grep DELEGATES
DELEGATES      bzlib mpeg freetype jng jpeg lzma png tiff xml zlib

Лично у меня никогда не было успеха с установкой CactusLabs. Я использую homebrew. Вы копируете сценарий однострочной установки из сюда, а затем можете просто управлять всеми пакетами на своем Mac с помощью команды brew. Например, чтобы найти имя пакета ImageMagick, просто выполните

brew search imagemagick

Чтобы установить ImageMagick, запустите

brew install imagemagick

Чтобы удалить ImageMagick, запустите

brew rm imagemagick

Чтобы установить Cimg, запустите

brew install cimg

Чтобы найти ffmpeg или GNU Parallel, просто выполните

brew search ffmpeg
brew search parallel

Чтобы решить любые проблемы с homebrew, просто позвоните Доктору:

brew doctor

и он расскажет вам о любых проблемах или несоответствиях.

person Mark Setchell    schedule 20.06.2015
comment
Спасибо за вашу помощь. Действительно кажется, что моему Mac не хватает некоторых необходимых библиотек. - person Shawn; 21.06.2015
comment
Вы можете сделать brew install libjpg libpng libtiff - person Mark Setchell; 21.06.2015