Как добавить поддержку формата изображения JPEG - proUbuntu
Винтажный Клуб для гитаристов
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.

Ответы [ 6 ]

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
6 голосов
/

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

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

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

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

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

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' работал отлично.

1 голос
/

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

sudo apt-get install imagemagick

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

sudo service apache2 restart

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

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 Package Manager " из Центра программного обеспечения. -> удалены старые пакеты libjpeg * -> переустановлены libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

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

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

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

0 голосов
/

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

sudo apt-get install libjpeg62

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

http://psx -scene.com / форум / F150 / помощь в установке-libjpeg-Libpng-убунту-9-10-LiveCD-64122 /

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

...