Как добавить поддержку формата изображения JPEG

12

После установки Imagemagick я протестировал его с изображением jpg, например так:

identify 1.jpg

Но я получил такой результат:

identify: no decode delegate for this image format `1.jpg' @ error/constitute.c/ReadImage/550.

Затем я попытался добавить поддержку формата JPEG:

yum install libjpeg libjpeg-devel

но я получил:

Setting up Install Process
No package libjpeg available.
No package libjpeg-devel available.
Nothing to do

Я думал, что мне нужно обновить apt-get, я сделал:

apt-get install libjpeg libjpeg-devel

но я получил:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libjpeg
E: Unable to locate package libjpeg-devel

Есть ли простой способ установить эти библиотеки? Я использую Ubuntu 12.04.

Самир Сабри
источник
2
Почему вы используете yum? Это менеджер пакетов для другого дистрибутива (Red Hat & Fedora), и если вы использовали yumдля установки imagemagick, я совсем не удивляюсь, что он не может найти библиотеки! Вы должны устанавливать программное обеспечение только с apt-get, если вы действительно не знаете, что делаете! Кроме того, «Ubuntu 12» недостаточно конкретен ... Существуют две версии Ubuntu, которые начинаются с «12»: 12.04 и 12.10. Версии Ubuntu основаны на дате выпуска: 12.04 был выпущен в апреле (месяц № 04) 12 года, а 12.10 был выпущен в октябре 12 года. Пожалуйста, будьте уверены и укажите!
тридцать три
У меня Ubuntu Release 12.04 (точная) 32-разрядная, я не устанавливал imagemagick с помощью yum, вместо этого я использую tar xvfz ImageMagick.tar.gz, cd ImageMagick-6.8.0, cd ImageMagick-6.8.0-4, ./configure. , make, sudo make install, sudo ldconfig / usr / local / lib
Самир Сабри
попробуйте apt-get установить libjpeg-dev
Шашанк Сингла
Там действительно отличный ответ http://askubuntu.com/a/746195
Л. Перси,
Как в мире любой пакет imagemagick может использоваться без поддержки предварительно упакованного JPEG-файла ?! Это все равно что продавать пиццу без сыра, хлеба или томатного соуса.
Шридхар Сарнобат

Ответы:

11

Я исправил проблему, установив из источника библиотеку кодирования jpeg, доступную по адресу http://www.ijg.org/files/jpegsrc.v8c.tar.gz .

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

Затем я переустановил ImageMagick из источника:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

Теперь это работает, я проверил это так:

sam@ubuntu:~/RubymineProjects/project/tmp$ identify 1.jpg
1.jpg JPEG 128x106 128x106+0+0 8-bit sRGB 2.22KB 0.000u 0:00.000
Самир Сабри
источник
Это сработало для меня. Мне пришлось добавить экспорт LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / в .profile
mv288
Я только установил первый jpegsrc из исходного кода и переустановил ImageMagick через него, apt-getи он тоже работал.
KYNG
6

Если вы решили собрать ImageMagick из исходного кода, вам нужно быть готовым вручную разрешить все зависимости. Если у вас нет острой необходимости, вы должны установить все программное обеспечение на Ubuntu из репозитория - либо официальные репозитории, либо PPA.

Если вы устанавливаете Imagemagick с помощью APT ( apt-get, Synaptic, Software Center и т. Д.), Файлы JPG будут работать нормально, как я подтвердил на моей машине.

Если ваша причина для сборки из исходного кода - получить более свежую версию, ищите PPA, который отслеживает самую последнюю версию. Если вы строите из исходного кода, чтобы помочь с разработкой, то вам следует выяснить у ребят из Imagemagick только то, что требуется для его успешного построения из исходного кода. Возможно, вам нужно указать какой-либо флаг ./configureили установить библиотеку разработки перед запуском ./configure.

Но, как правило, сборка из источника просто без необходимости усложняет ситуацию.

Кстати, Red Hat и Ubuntu используют разные имена для пакетов. Поэтому, если вы yumжалуетесь на отсутствующий пакет, не удивительно, если apt-getвы не можете найти пакет с таким именем. Вы не должны смешивать менеджеры пакетов в системе, если у вас нет действительно веской причины для этого. Даже тогда, попробуйте все остальные варианты в первую очередь.

Скотт Северанс
источник
У меня нет особых причин для сборки из исходного кода, если установка Imagemagick с использованием APT (apt-get, Synaptic, Software Center и т. Д.) Решит проблему с файлами JPG, я пойду с ней, не могли бы вы указать мне, как установить Imagemagick используя APT, как вы сделали?
Самир Сабри
@SamirSabri: просто найдите Центр программного обеспечения или Synaptic. Или автодополнение использовать на , apt-getчтобы открыть следующую команду: sudo apt-get install imagemagick.
Скотт Северанс
Кстати, я настоятельно рекомендую вам удалить все предыдущие попытки установить imagemagick, прежде чем пытаться установить, используя мой метод. В противном случае вы можете столкнуться с конфликтами.
Скотт Северанс
Несмотря на то, что я удалил предыдущие попытки, я получаю сообщение об ошибке при идентификации изображения jpg, например: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identif 1.jpg identifier: нет делегата декодирования для этого формата изображения `1.jpg ' @ error / constitute.c / ReadImage / 550.
Самир Сабри
3

Обратите внимание, что no decode delegateошибка может (весьма запутанно) возникнуть из-за того, что imagemagick (или какая-то его часть) не может найти файл. Поэтому перед запуском переустанавливать ImageMagick, проверьте с identify -list formatи convert -list configureформат JPEG, поддерживается ли, и если да, то проблема, вероятно , будет где - то в другом месте.

Например, convert -resize 50% foo\ bar.jpgподарил мне no decode delegate for this image formatэрор, но convert -resize 50% 'foo bar.jpg'работал отлично.

Tgr
источник
1

Если вы только что установили php5-imagick, попробуйте также установить полный пакет imagemagick. Это установит все необходимые библиотеки, такие как jpeg.

sudo apt-get install imagemagick

Затем перезапустите ваш веб-сервер, чтобы перезагрузить все библиотеки:

sudo service apache2 restart

Декодирование JPEG теперь должно работать без ошибок.

Epskampie
источник
0

ты пробовала :

sudo apt-get установить libjpeg62

Если приведенная выше команда не работает, перейдите по следующей ссылке.

http://psx-scene.com/forums/f150/help-install-libjpeg-libpng-ubuntu-9-10-livecd-64122/

Дайте им знать, если это было полезно, удачи ... :)

Риши Колвекар
источник
Я попробовал ваше решение, я получил: Чтение списков пакетов ... Готово Построение дерева зависимостей Чтение информации о состоянии ... Готово libjpeg62 уже самая новая версия. 0 обновлено, 0 вновь установлено, 0 для удаления и 6 не обновлено. Но я по-прежнему получаю сообщение об ошибке при идентификации изображения jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifier 1.jpg identifie: нет делегата декодирования для этого формата изображения `1.jpg '@ error / constitute.c / ReadImage / 550.
Самир Сабри
хорошо, я нашел это: blog.ericlamb.net/2008/11/… пожалуйста, проверьте и дайте мне знать, спасибо за ваш ответ.
Риши Колвекар
Я только что исправил это перед прочтением вашего последнего комментария, спасибо, у меня есть это в моем ответе ниже
Самир Сабри
звучит здорово !!! :)
Риши Колвекар
0

| Самый простой способ | Загрузите « Synaptic Package Manager » из Центра программного обеспечения. -> удалены старые пакеты libjpeg * -> переустановлены libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

PS: я получаю ту же ошибку. Мне понадобилось 2 дня, чтобы решить. Моя ошибка, когда я пытался отобразить изображение JPG:

no decode delegate for this image format `jpeg' @ error/constitute.c/readimage/504

Затем я загружаю « Менеджер пакетов Synaptic » из Центра программного обеспечения. -> удалены старые пакеты libjpeg * -> переустановлены libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

(* менеджер пакетов synaptics покажет зависимость с другим пакетом, удаляя только старые независимые пакеты libjpeg)

После этого я могу открывать изображения в формате JPEG, не опасаясь ошибок.

Надеюсь, это поможет :)

Кевин Патель
источник