Як увімкнути JPEG2000 (jp2) у ImageMagick?


13

Я хочу використовувати ImageMagick для перетворення деяких файлів з jp2 (JPEG-2000) в jpg. Команда зробити це добре, але я не знаю, як увімкнути делегат jp2 у ImageMagick.

Я встановив ImageMagick з допомогою менеджера пакетів: sudo apt-get install ImageMagick.
Я використовую ImageMagick 6.8.9-9, це найсучасніша версія ImageMagick, доступна з apt-get.

В даний час багато основних типів файлів автоматично включаються. Наступні бібліотеки мають вбудовану підтримку і перераховані як делегати:

bzlib kairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

Редагувати : я повинен був згадати, я намагався перетворити файли, перш ніж починати суперечки openjpeg-2. Така команда convert input.jp2 output.jpgвидає мені повідомлення про помилку:

конвертувати: немає делегата декодування для цього формату зображення `JP2 '@ error / constitute.c / ReadImage / 501.

Отже, мені потрібно, щоб jp2 працював. Відповідна бібліотека openjpeg-2, і ImageMagick в сторінці делегатів дає тарболл, openjpeg-2.0.0.tar.gz.

Гаразд, тому я завантажив його та дотримувався інструкцій із встановлення, наведених у файлі встановлення. Звичайний матеріал: cmake ., sudo make install.

Але тепер, як налаштувати ImageMagick так, щоб він "підбирався" open-jpeg-2.0.0? Чи потрібно для цього відновлювати ImageMagick з джерела? Або є команда, яку я можу ввести, щоб отримати ImageMagick, щоб увімкнути її? Або файл, який я повинен змінити тощо?

Я витратив віки і епохи, вивчаючи це, читав багато запитань в Інтернеті, але все одно не зламав. Це питання моїх знань Linux, а не щось, що стосується ImageMagick як такого , тому я дуже вдячний, якщо хтось може допомогти мені розібратися, що тут не вистачає. Дякую.


Я вирішив цю проблему, скориставшись замість graphicsmagick, наприклад,gm convert in.jp2 out.jpg
Сем Вілсон

Відповіді:


3

Встановіть libopenjp2-toolsта використовуйте opj_decompressдля перетворення jp2 у щось інше:

sudo apt install libopenjp2-tools
opj_decompress -i m_3712213_sw_10_h_20160625_20161004.jp2 -OutFor TIF -o my.tif

Цей пакет надає інструменти командного рядка, що дозволяють здійснювати перетворення між кількома форматами, а також надає інструменти для кодування та декодування відеоформатів motion-jpeg2000:

  • opj_decompress: декодує j2k, jp2 та jpt-файли у pgm, ppm, pnm, pgx та bmp.
  • opj_compress: кодує файли pnm, pgm, pgx, bmp та ppm до j2k та jp2.
  • opj_dump: інформація про дамп містить у j2k та jp2.
  • index_create: створити jp2 з індексним файлом JPIP з файлу j2k.
  • frame_to_mj2: перетворити відеопотоки YUV у формат mj2.
  • mj2_to_frames: конвертувати mj2 відеопотоки у формат YUV.
  • wrap_j2k_in_mj2: перетворити кодові потоки j2k у формат mj2.
  • extrakt-j2k-from_mj2: витягти j2k кодові потоки з формату mj2.

2

Я вирішую свою проблему з включенням делегації openjp2 в Imagemagick.

Обов’язково встановіть:

Тепер при запуску ./configureви можете побачити делегацію openjp2

DELEGATES = mpeg jbig jng jpeg lcms lzma openjp2 png tiff zlib


1

З моєї установки за замовчуванням Image Magick 6.8.9.9 з репозиторіїв Ubuntu 16.04 виявляється, що Jpeg200 ( .jp2) повністю підтримується.

Перетворення можна здійснити за допомогою:

convert in.png out.jp2
convert in.jp2 out.jpg

Для параметрів командного рядка esp. щодо параметрів кодування та обробки зображень з плитки див. онлайн-документацію Image Magick .

Однак слід сказати, що jp2він не вказаний у списку підтримуваних форматів:

identify -list format

Тим не менш, це, мабуть, все ще працює добре.


1
Дякую @Takkat, для мене це не так. Коли я намагаюся це ( convert in.jp2 out.jpg), я отримую повідомлення про помилку про те, що у мене немає делегата jp2: convert: немає делегата декодування для цього формату зображення 'JP2' @ error / constitute.c / ReadImage / 501. Я в 6.8.9.9 (від convert --version: Версія: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 imagemagick.org ). Дійсно, що у вашій версії jp2 не вказаний як формат, але він все ще працює! Чи дійсні вихідні файли jpg?
arokath

@arokath: так, файли дійсні - я перевірив перетворення з і в. Читання JPG за допомогою ImageViewer або Gimp добре, читання JP2 за допомогою Gimp або Darktable було нормально.
Таккат

Ця помилка також є актуальною. Можливо, я libopenjpeg2встановив іншу програму (не можу перевірити це до сьогоднішнього дня).
Таккат

1
Гм, я переглянув цей звіт про помилку. Навіть із встановленням libopenjp2-devта повторною перебудовою з джерела він все ще не працює. Я на жаль на 100% застряг. Дякую за відповіді!
arokath

1
Це не відповідь на запитання. Ви просто говорите, що це працює для вас! І давати посилання на документацію - це не відповідь!
Азім

1

@arokath Як і ви, мені не вдалося знайти підтримку jp2 у версії ImageMagick, яку я встановив через apt-get (Ubuntu 16.04.1 LTS).

Перш ніж будувати з джерела (слідкуючи за документами ImageMagick ), я встановив спочатку, libopenjp2-toolsа потім libopenjp2-7-dev.

Примітка : я не впевнений, хто з них зробив трюк: алфавітний підсумок в кінці configureпереліченої jp2 підтримує як OpenJP2, а не JP2який я не помітив, поки не встановив libopenjp2-7-devі не налаштував; цілком можливо, він працював лише з першою лібкою.

Крім того ./configure, makeі make installя виявив , що мені потрібно (як це було запропоновано в документації) , щоб «налаштувати динамічний компонувальник»: sudo ldconfig /usr/local/lib.

Тепер, вихід /usr/local/bin/identify -list formatмістить:

  J2C* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  J2K* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JNX* r--   Garmin tile format
  JP2* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPC* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JPM* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPT* rw-   JPEG-2000 File Format Syntax (2.1.0)
 JSON  -w+   The image format and characteristics

1
Дякую за це У мене ще проблеми, на жаль! Я встановив libopenjp2-toolsі libopenjp2-7-devвикористовував apt-get, потім будував з джерела, потім бігав sudo ldconfig /usr/local/lib. (Іншими словами, слідкуйте за документами). ВЖЕ не JP2. Арг! Це робить мені голову. Я знову пройду процес, про всяк випадок.
arokath

Ще не везе. Я помітив, що під час запуску ./configureвін перевіряє JP2 та не знаходить його: "перевірка на LIBOPENJP2 ... ні" . Як бонус, зараз він взагалі не працює для конверсій JPEG. Коли я спробував, convert in.png out.jpgвін створює файл, але він недійсний - це файл PNG просто з розширенням jpg. Я не знаю, чому JPEG слід раптом зламати, коли я компілюю з джерела!
arokath

Спробуйте запустити "apt-get build-dep imagemagick", щоб він встановив бібліотеки, необхідні imagemagick (це будуть ті, з якими він був створений у випуску, тому вам все одно знадобиться openjp2)
cbz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.