Jak dodać obsługę formatu obrazu JPEG


12

Po zainstalowaniu Imagemagick przetestowałem go z obrazem jpg, takim jak ten:

identify 1.jpg

Ale mam ten wynik:

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

Następnie próbowałem dodać obsługę formatu JPEG przez:

yum install libjpeg libjpeg-devel

ale mam:

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

Pomyślałem, że muszę zaktualizować apt-get, zrobiłem:

apt-get install libjpeg libjpeg-devel

ale mam:

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

Czy istnieje prosty sposób na zainstalowanie tych bibliotek? Używam Ubuntu 12.04.


2
Dlaczego używasz yum? To jest menedżer pakietów dla innej dystrybucji (Red Hat i Fedora), a jeśli yuminstalowałeś imagemagick, wcale nie jestem zaskoczony, że nie może znaleźć bibliotek! Powinieneś instalować oprogramowanie tylko z apt-get, chyba że naprawdę wiesz, co robisz! Ponadto „Ubuntu 12” nie jest wystarczająco szczegółowe… Istnieją dwie wersje Ubuntu, które zaczynają się od „12”: 12.04 i 12.10. Wersje Ubuntu oparte są na dacie wydania: wersja 12.04 została wydana w kwietniu (miesiąc nr 04) z '12, a wersja 12.10 została wydana w październiku '12. Proszę, upewnij się i określ!
trzydziesty trzydziesty

Mam system Ubuntu w wersji 12.04 (precyzyjny) 32-bitowy, nie instalowałem imagemagick z yum, zamiast tego używam 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
Samir Sabri

wypróbuj apt-get install libjpeg-dev
Shashank Singla

To naprawdę świetna odpowiedź tam http://askubuntu.com/a/746195
L. Percy

jak, na świecie, jakikolwiek pakiet imagemagick może być JAKIEKOLWIEK, bez obsługi pakietu JPEG ?! To jak sprzedawanie pizzy bez sera, chleba lub sosu pomidorowego.
Sridhar Sarnobat

Odpowiedzi:


11

Rozwiązałem problem, instalując ze źródła bibliotekę kodowania jpeg dostępną pod adresem 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

Następnie ponownie zainstalowałem ImageMagick ze źródła:

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

Teraz działa, przetestowałem go w następujący sposób:

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

To zadziałało dla mnie. Musiałem dodać eksport LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in .profile
mv288

Zainstalowałem tylko pierwszy plik jpegsrc ze źródła i ponownie zainstalowałem ImageMagick przez apt-geti on też działał.
Kyng

6

Jeśli zdecydujesz się zbudować ImageMagick ze źródła, musisz być przygotowany do ręcznego rozwiązania wszystkich zależności. O ile nie masz pilnej potrzeby, powinieneś zainstalować całe oprogramowanie na Ubuntu z repozytorium - oficjalne repozytorium lub PPA.

Jeśli zainstalujesz Imagemagick za pomocą APT ( apt-get, Synaptic, Software Center itp.), To pliki JPG będą działać dobrze, co potwierdziłem na moim komputerze.

Jeśli powodem budowania ze źródła jest zdobycie nowszej wersji, poszukaj PPA, który śledzi najnowszą wersję. Jeśli budujesz ze źródła, aby pomóc w rozwoju, powinieneś dowiedzieć się od ludzi Imagemagick, co jest potrzebne do pomyślnego zbudowania go ze źródła. Być może ./configureprzed uruchomieniem musisz podać flagę lub zainstalować bibliotekę programistyczną ./configure.

Ale zwykle budowanie ze źródła po prostu niepotrzebnie komplikuje rzeczy.

Aha, przy okazji, Red Hat i Ubuntu używają różnych nazw dla pakietów. Więc jeśli yumnarzeka na brakujący pakiet, nie powinno dziwić, że apt-getnie mogę znaleźć pakietu o tej nazwie. Nie powinieneś mieszać menedżerów pakietów w systemie, chyba że masz naprawdę dobry powód, aby to zrobić. Nawet wtedy wypróbuj najpierw każdą inną opcję.


Nie mam konkretnego powodu, aby budować ze źródła, jeśli zainstalowanie Imagemagick za pomocą APT (apt-get, Synaptic, Software Center itp.) Naprawi problem z plikami JPG, pójdę z tym, czy możesz mi wskazać, jak zainstalować Imagemagick używasz APT tak jak ty?
Samir Sabri,

@SamirSabri: Wystarczy przeszukać Centrum oprogramowania lub Synaptic. Lub uzupełnienia zakładka na wykorzystanie apt-getodkryć komendę: sudo apt-get install imagemagick.
Scott Severance,

Nawiasem mówiąc, zdecydowanie zalecam usunięcie wszystkich poprzednich prób instalacji imagemagick, zanim spróbujesz zainstalować przy użyciu mojej metody. W przeciwnym razie możesz skończyć z konfliktami.
Scott Severance,

Chociaż usunąłem poprzednie próby, pojawia się błąd podczas identyfikowania obrazu jpg, na przykład: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ ident 1.jpg ident: brak delegatu dekodowania dla tego formatu obrazu „1.jpg” @ error / constit.c / ReadImage / 550.
Samir Sabri,

3

Zauważ, że no decode delegatebłąd może (dość myląco) wynikać z faktu, że imagemagick (lub jego część) nie znalazł pliku. Więc przed uruchomieniem, aby ponownie zainstalować ImageMagick, sprawdź u identify -list formati convert -list configureczy format JPEG jest obsługiwany, a jeśli jest, to problem będzie prawdopodobnie gdzieś indziej.

Na przykład convert -resize 50% foo\ bar.jpgdał mi błąd no decode delegate for this image format, ale convert -resize 50% 'foo bar.jpg'działał idealnie.


1

Jeśli właśnie zainstalowałeś php5-imagick, spróbuj także zainstalować pełny pakiet imagemagick. Spowoduje to zainstalowanie wszystkich wymaganych bibliotek, takich jak biblioteka jpeg.

sudo apt-get install imagemagick

Następnie uruchom ponownie serwer WWW, aby ponownie załadować wszystkie biblioteki:

sudo service apache2 restart

Dekodowanie JPEG powinno teraz działać bezbłędnie.


0

czy próbowałeś :

sudo apt-get install libjpeg62

jeśli powyższe polecenie nie działa, przejdź przez poniższy link.

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

Daj im znać, jeśli to było pomocne, powodzenia ... :)


Wypróbowałem twoje rozwiązanie, mam: Odczytywanie list pakietów ... Gotowe Budowanie drzewa zależności Odczytywanie informacji o stanie ... Gotowe libjpeg62 jest już najnowszą wersją. 0 zaktualizowanych, 0 nowo zainstalowanych, 0 do usunięcia i 6 niezaktualizowanych. Ale nadal pojawia się błąd, gdy identyfikuję obraz jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identyfikacja 1.jpg identyfikacja: brak delegata dekodowania dla tego formatu obrazu `1.jpg '@ błąd / constit.c / ReadImage / 550.
Samir Sabri,

ok, znalazłem to: blog.ericlamb.net/2008/11/... proszę sprawdź i daj mi znać, dziękuję za odpowiedź.
Rishi Kolvekar

Właśnie to naprawiłem przed przeczytaniem twojego ostatniego komentarza, dzięki, mam to w mojej odpowiedzi poniżej
Samir Sabri

brzmi wspaniale !!! :)
Rishi Kolvekar

0

| Najłatwiejszy sposób | Pobierz „ Synaptic Package Manager ” z centrum oprogramowania. -> usunięto starsze pakiety libjpeg * -> przeinstalowano libjpeg8 i libjpeg-turbo8 i libjpeg-turbo8-dev.

PS: Otrzymywałem ten sam błąd. Rozwiązanie zajęło mi 2 dni. Mój błąd podczas próby wyświetlenia obrazu jpg:

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

Następnie pobieramSynaptic Package Manager ” z centrum oprogramowania. -> usunięto starsze pakiety libjpeg * -> przeinstalowałem libjpeg8 i libjpeg-turbo8 i libjpeg-turbo8-dev.

(* Menedżer pakietów synaptics pokaże zależność od innego pakietu, usuń tylko starsze niezależne pakiety libjpeg)

Następnie mogę otwierać obrazy JPEG bez obawy o błąd.

Mam nadzieję, że to pomoże :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.