Chcę użyć ImageMagick do konwersji niektórych plików z JP2 (JPEG-2000) na JPG. Polecenie to jest w porządku, ale nie wiem jak włączyć delegata jp2 w ImageMagick.
Mam zainstalowany ImageMagick poprzez menadżera pakietów: sudo apt-get install ImageMagick
.
Używam ImageMagick 6.8.9-9, jest to najbardziej aktualna wersja ImageMagick dostępna z apt-get
.
Obecnie wiele głównych typów plików jest włączanych automatycznie. Następujące biblioteki mają wbudowane wsparcie i są wymienione jako delegaci:
bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
Edycja : Powinienem wspomnieć, próbowałem konwersji plików, zanim zacząłem się kłócić openjpeg-2
. Polecenie typu convert input.jp2 output.jpg
daje mi komunikat o błędzie:
konwersja: brak delegata dekodowania dla tego formatu obrazu `JP2 '@ error / constit.c / ReadImage / 501.
Więc muszę uruchomić jp2. Stosowne jest biblioteka openjpeg-2
, a ImageMagick w stronę delegatów daje archiwum, openjpeg-2.0.0.tar.gz
.
Okej, więc go pobrałem i postępowałem zgodnie z instrukcjami instalacji podanymi w pliku instalacyjnym. Normalne rzeczy: cmake .
, sudo make install
.
Ale teraz, jak skonfigurować ImageMagick, aby „odbierał” open-jpeg-2.0.0
? Czy w tym celu muszę odbudować ImageMagick ze źródła? Czy istnieje polecenie, które mogę wprowadzić, aby ImageMagick mógł je włączyć? Lub plik, który powinienem zmienić itp.?
Spędziłem całe wieki, przyglądając się temu, czytając wiele pytań i odpowiedzi online, ale nadal tego nie łamałem. Jest to kwestia mojej wiedzy o Linuksie, a nie coś wspólnego z ImageMagick per se , więc byłbym bardzo wdzięczny, gdyby ktoś mógł mi pomóc dowiedzieć się, jaki jest brakujący krok. Dziękuję Ci.
gm convert in.jp2 out.jpg
Odpowiedzi:
Zainstaluj
libopenjp2-tools
i użyj,opj_decompress
aby przekonwertować JP2 na coś innego:Ten pakiet zawiera narzędzia wiersza polecenia umożliwiające konwersję między różnymi formatami, a także narzędzia do kodowania i dekodowania formatów wideo motion-jpeg2000:
źródło
Rozwiązuję problem z włączeniem delegacji openjp2 w Imagemagick.
Upewnij się, że zainstalowałeś:
Teraz po uruchomieniu
./configure
możesz zobaczyć delegację openjp2źródło
Z mojej domyślnej instalacji Image Magick 6.8.9.9 z repozytoriów Ubuntu 16.04 wygląda na to, że Jpeg200 (
.jp2
) jest w pełni obsługiwany.Konwersji można dokonać za pomocą:
Opcje wiersza polecenia esp. w sprawie opcji kodowania lub obsługi obrazów sąsiadujących patrz dokumentacja online Image Magick .
Trzeba jednak powiedzieć, że
jp2
nie ma go na liście obsługiwanych formatów:Niemniej jednak najwyraźniej nadal działa dobrze.
źródło
convert in.jp2 out.jpg
), pojawia się komunikat o błędzie, że nie mam delegata JP2 : konwersja: brak delegata dekodowania dla tego formatu obrazu „JP2” @ error / constit.c / ReadImage / 501. Mam 6.8.9.9 (zconvert --version
: Wersja: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 imagemagick.org ). Naprawdę dziwne, że twoja wersja nie wyświetla jp2 jako formatu, ale nadal działa! Czy pliki wyjściowe jpg są prawidłowe?libopenjpeg2
zainstalować z innej aplikacji (nie mogę tego przetestować do dzisiaj).libopenjp2-dev
a następnie przebudowie ze źródła, nadal nie działa. Niestety wciąż tkwię w 100%. Ale dziękuję za odpowiedzi!@arokath Tak jak ty, nie mogłem znaleźć wsparcia dla jp2 w wersji ImageMagick, którą zainstalowałem przez apt-get (Ubuntu 16.04.1 LTS).
Przed budynku od źródła (w następstwie docs ImageMagick ), zainstalowałem najpierw
libopenjp2-tools
, a potemlibopenjp2-7-dev
.Uwaga : Nie jestem pewien, który z nich wykonał tę sztuczkę: podsumowanie alfabetyczne na końcu
configure
wymienionej obsługi jp2 jakoOpenJP2
, a raczejJP2
tego, czego nie zauważyłem, dopóki nie zainstalowałemlibopenjp2-7-dev
i nie skonfigurowałem ponownie; jest całkiem możliwe, że działało tylko z pierwszą biblioteką lib.Poza tym
./configure
,make
imake install
znalazłem, że muszę (jak zasugerowano w docs) do „skonfigurować linker dynamiczny”:sudo ldconfig /usr/local/lib
.Teraz wynik
/usr/local/bin/identify -list format
zawiera:źródło
libopenjp2-tools
ilibopenjp2-7-dev
używałemapt-get
, potem zbudowałem ze źródła, a potem uruchomiłemsudo ldconfig /usr/local/lib
. (Innymi słowy, postępowałem zgodnie z dokumentami). STILL nie JP2. Argh! Wchodzi mi to w pamięć. Na wszelki wypadek ponownie przeprowadzę ten proces../configure
sprawdza JP2 i nie znajduje go: „Sprawdzanie LIBOPENJP2 ... nie” . Jako bonus, teraz nie działa ogólnie dla konwersji JPEG. Kiedy próbowałemconvert in.png out.jpg
, tworzy plik, ale jest nieprawidłowy - jest to plik PNG tylko z rozszerzeniem jpg. Nie wiem, dlaczego JPEG miałby nagle zostać zepsuty, kiedy skompilowałem ze źródła!