Russian Qt Forum

Qt => Мультимедиа => Тема начата: ppk от Апрель 10, 2009, 18:32



Название: JPEG2000
Отправлено: ppk от Апрель 10, 2009, 18:32
Добрый день! Если я правильно понимаю, QT 4.5 штатно не поддерживает JPEG2000. Может быть есть какое-то решение или надо искать сторонние библиотеки?


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 18:35
ТЫК (http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtjp2imageformat)


Название: Re: JPEG2000
Отправлено: ppk от Апрель 10, 2009, 18:40
Спасибо, посмотрю.


Название: Re: JPEG2000
Отправлено: ppk от Апрель 10, 2009, 19:18
Скачал qtjp2imageformat-2.4-opensource. 
Если правильно понял, то чтобы собрать плагин необходимо скачать еще JasPer library: http://www.ece.uvic.ca/~mdadams/jasper/.
Скачал jasper-1.900.1.
Посмотрел doc, где есть инструкция по сборке под Windows:
"Build Process for Microsoft Visual C Studio under Microsoft Windows". Вроде как, что-то собралось - получил файл libjasper.lib.

Далее пытаюсь собрать плагин, действуя по инструкции (install.txt):
- запуситил configure.bat
- прописал пути
("If you are on Windows, you need to change the JASPERINCLUDE and
JASPERLIB settings in src\qtjp2imageformat.pri to point to the
JasPer header files and the jasper library." )
- далее qmake
- и mingw32-make

При запуске mingw32-make выдает ошибку: file not found -ljasper.lib.
А где взять этот файл-то? В каталоге самой библиотеки JasPer его не нашел.
Или дело в том, что libjasper.lib я собираю под MSVC, а плагин пытаюсь получить под mingw32?
Если это так, то как собрать libjasper.lib под mingw?
Подскажите, как действовать? C QT только начал разбираться, поэтому могу ошибаться в элементарных вещах. Может быть у кого-то был опыт работы с этим плагином?


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 19:30
2 ppk,
Важно!
Компилить программы и плагины нужно тем компилятором которым собрана сама Qt!
раз ты пользуешся MinGW32, собирай всё этим компилятором. (на выходе получится не libjasper.lib, а libjasper.a)


Название: Re: JPEG2000
Отправлено: ppk от Апрель 10, 2009, 19:44
Попробовал собрать jasper-1.900.1 под mingw. Делал так:
- cd ..\src\libjasper
- qmake -project
- qmake
- mingw32-make
После этого возникает туча ошибок.
Кто-нибудь собирал уже этот плагин?
---
Может быть мне перенести обсуждение в раздел для новичков?


Название: Re: JPEG2000
Отправлено: pastor от Апрель 10, 2009, 20:01
А что за ошибки?


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 20:14
2 ppk,
- qmake -project
- qmake
от строчек толку нет, JasPer не Qt'шное приложение, надо либо pro-файл в ручную создавать по аналогии со студийным проектом, либо какой-то иной способ использовать.


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 20:17
там к стати лежат файлы созданные с помощью automake
Попробуй просто mingw32-make запустить


Название: Re: JPEG2000
Отправлено: pastor от Апрель 10, 2009, 20:29
Вот что пишется в файле INSTALL

Цитировать
Detailed instructions on how to build and install the JasPer software can be found in the JasPer Software Reference Manual which is located in the doc directory.  (See the section titled "Building the Software".)

Советую следовать этим указаниям


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 21:02
2 pastor, там под виндовоз есть только описание "Build Process for Microsoft Visual C Studio under Microsoft Windows", о котором ppk уже сказал.


Название: Re: JPEG2000
Отправлено: lit-uriy от Апрель 10, 2009, 22:07
Вобщем сильно ковырятся было лень, вот pro-файл для JasPer'а, его нужно положить в каталог msvc (т.е. где студийный файл проекта)
Код:
TEMPLATE      = lib
TARGET        = libjasper
CONFIG       += debug_and_release
CONFIG       -= qt
CONFIG       -= staticlib

INCLUDEPATH   += ..\libjasper\include
DEPENDPATH   += ..\libjasper\include

SOURCES +=..\libjasper\bmp\bmp_cod.c

SOURCES +=..\libjasper\bmp\bmp_dec.c

SOURCES +=..\libjasper\bmp\bmp_enc.c

SOURCES +=..\libjasper\base\jas_cm.c

SOURCES +=..\libjasper\base\jas_debug.c

SOURCES +=..\libjasper\base\jas_getopt.c

SOURCES +=..\libjasper\base\jas_icc.c

SOURCES +=..\libjasper\base\jas_iccdata.c

SOURCES +=..\libjasper\base\jas_image.c

SOURCES +=..\libjasper\base\jas_init.c

SOURCES +=..\libjasper\base\jas_malloc.c

SOURCES +=..\libjasper\base\jas_seq.c

SOURCES +=..\libjasper\base\jas_stream.c

SOURCES +=..\libjasper\base\jas_string.c

SOURCES +=..\libjasper\base\jas_tmr.c

SOURCES +=..\libjasper\base\jas_tvp.c

SOURCES +=..\libjasper\base\jas_version.c

SOURCES +=..\libjasper\jp2\jp2_cod.c

SOURCES +=..\libjasper\jp2\jp2_dec.c

SOURCES +=..\libjasper\jp2\jp2_enc.c

SOURCES +=..\libjasper\jpc\jpc_bs.c

SOURCES +=..\libjasper\jpc\jpc_cs.c

SOURCES +=..\libjasper\jpc\jpc_dec.c

SOURCES +=..\libjasper\jpc\jpc_enc.c

SOURCES +=..\libjasper\jpc\jpc_math.c

SOURCES +=..\libjasper\jpc\jpc_mct.c

SOURCES +=..\libjasper\jpc\jpc_mqcod.c

SOURCES +=..\libjasper\jpc\jpc_mqdec.c

SOURCES +=..\libjasper\jpc\jpc_mqenc.c

SOURCES +=..\libjasper\jpc\jpc_qmfb.c

SOURCES +=..\libjasper\jpc\jpc_t1cod.c

SOURCES +=..\libjasper\jpc\jpc_t1dec.c

SOURCES +=..\libjasper\jpc\jpc_t1enc.c

SOURCES +=..\libjasper\jpc\jpc_t2cod.c

SOURCES +=..\libjasper\jpc\jpc_t2dec.c

SOURCES +=..\libjasper\jpc\jpc_t2enc.c

SOURCES +=..\libjasper\jpc\jpc_tagtree.c

SOURCES +=..\libjasper\jpc\jpc_tsfb.c

SOURCES +=..\libjasper\jpc\jpc_util.c

SOURCES +=..\libjasper\jpg\jpg_dummy.c

SOURCES +=..\libjasper\jpg\jpg_val.c

SOURCES +=..\libjasper\mif\mif_cod.c

SOURCES +=..\libjasper\pgx\pgx_cod.c

SOURCES +=..\libjasper\pgx\pgx_dec.c

SOURCES +=..\libjasper\pgx\pgx_enc.c

SOURCES +=..\libjasper\pnm\pnm_cod.c

SOURCES +=..\libjasper\pnm\pnm_dec.c

SOURCES +=..\libjasper\pnm\pnm_enc.c

SOURCES +=..\libjasper\ras\ras_cod.c

SOURCES +=..\libjasper\ras\ras_dec.c

SOURCES +=..\libjasper\ras\ras_enc.c


HEADERS +=..\libjasper\bmp\bmp_cod.h

HEADERS +=..\libjasper\include\jasper\jas_cm.h

HEADERS +=..\libjasper\include\jasper\jas_icc.h

HEADERS +=..\libjasper\include\jasper\jas_tmr.h

HEADERS +=..\libjasper\jp2\jp2_cod.h

HEADERS +=..\libjasper\jp2\jp2_dec.h

HEADERS +=..\libjasper\jpc\jpc_bs.h

HEADERS +=..\libjasper\jpc\jpc_cod.h

HEADERS +=..\libjasper\jpc\jpc_cs.h

HEADERS +=..\libjasper\jpc\jpc_dec.h

HEADERS +=..\libjasper\jpc\jpc_enc.h

HEADERS +=..\libjasper\jpc\jpc_fix.h

HEADERS +=..\libjasper\jpc\jpc_flt.h

HEADERS +=..\libjasper\jpc\jpc_math.h

HEADERS +=..\libjasper\jpc\jpc_mct.h

HEADERS +=..\libjasper\jpc\jpc_mqcod.h

HEADERS +=..\libjasper\jpc\jpc_mqdec.h

HEADERS +=..\libjasper\jpc\jpc_mqenc.h

HEADERS +=..\libjasper\jpc\jpc_qmfb.h

HEADERS +=..\libjasper\jpc\jpc_t1cod.h

HEADERS +=..\libjasper\jpc\jpc_t1dec.h

HEADERS +=..\libjasper\jpc\jpc_t1enc.h

HEADERS +=..\libjasper\jpc\jpc_t2cod.h

HEADERS +=..\libjasper\jpc\jpc_t2dec.h

HEADERS +=..\libjasper\jpc\jpc_t2enc.h

HEADERS +=..\libjasper\jpc\jpc_tagtree.h

HEADERS +=..\libjasper\jpc\jpc_tsfb.h

HEADERS +=..\libjasper\jpc\jpc_util.h

HEADERS +=..\libjasper\jpg\jpg_cod.h

HEADERS +=..\libjasper\mif\mif_cod.h

HEADERS +=..\libjasper\pgx\pgx_cod.h

HEADERS +=..\libjasper\pnm\pnm_cod.h

HEADERS +=..\libjasper\ras\ras_cod.h

Этот файл сделан на основе jasper.dsp (список исходников), компиляется так:
qmake
mingw32-make

, получаются:
libjasper.dll
liblibjasper.a


дальше не проверял (сборку плагина)


Название: Re: JPEG2000
Отправлено: ppk от Апрель 11, 2009, 00:15
Вроде как получилось, прилагаемый пример отработал и загрузил тестовую картинку. Немного пришлось изменить файл qtjp2imageformat.pri.
Огромное спасибо lit-uriy.
pastor - спасибо за участие.


Название: Re: JPEG2000
Отправлено: west от Апрель 17, 2009, 16:05
Есть хорошая библиотека для JP2 Kakadu, в гугле смотреть Kakadu jpeg2000. У меня есть даже в исходниках. Собирается нормально, работает с тестовыми примерами без вопросов. Не пытался никто ее завернуть для работы с потоком байтов?