Russian Qt Forum

Qt => Мультимедиа => Тема начата: boruh от Август 05, 2009, 18:22



Название: Поддержка JPEG
Отправлено: boruh от Август 05, 2009, 18:22
Всем доброго дня.
Софтина написана на Qt 4.5.2, возникает проблема с поддержкой JPEG. Я собирал Qt с опцией -qt-libjpeg, т.е. согласно мануалу поддержка должна быть. В папке plugins/imageformats/ лежит файл qjpeg4.dll. Я пробовал по всякому - и папку plugins записывал вместе с exe-шником, и папку imageformats записывал и одну в другую - ничего не помогает. Т.е. когда я на своей машине запускаю, где Qt установлен - все гуд, когда на машине клиента - не пашет. Раньше как-то доводилось работать с sql-плагинами - там все работало нормально, т.е. записываешь папку с dll-кой плагина туда, где лежит exe-шник - и все работало нормально.
Помогите пожалуйста, замучался с этой проблемой! Очень хочется на самом деле просто "вбилдить" эту dll-ку для поддержки джипега вообще в QtCore4.dll и не думать больше о ней, но почему-то так не получается. А очень надо!


Название: Re: Поддержка JPEG
Отправлено: VAP от Август 05, 2009, 20:50
У меня была такая же проблема, при переходе из Qt4.4.0 на 4.4.3, я ее даже на форуме подымал. Для себя решил просто - использовал jpeg.dll от предыдущей версии Qt4.4.0


Название: Re: Поддержка JPEG
Отправлено: boruh от Август 05, 2009, 22:59
И что, это помогло?
Мы до этого использовали 4.3.3, но насколько я помню там тоже была та же самая проблема. Как я уже сказал, самое большое желание - это встроить поддержку джипега вообще в какой-нибудь QtCore, возможно ли это? Еще есть при сборке Qt опция что-то типа "use system JPEG support" или что-то подобное. КТо-нибудь знает что это означает, что это дает?


Название: Re: Поддержка JPEG
Отправлено: Vexator от Август 06, 2009, 02:14
Qt 4.2.3 просто креплю папку /imageformats в каталог к exe
и jpeg так же как и gif  и др. пашет норм.
ну и dll ки, основные тоже


Название: Re: Поддержка JPEG
Отправлено: BaltikS от Август 06, 2009, 05:27
В 4.5.2 тоже проблем нет...


Название: Re: Поддержка JPEG
Отправлено: boruh от Август 07, 2009, 10:16
А в Висте пробовали? В Висте работает?


Название: Re: Поддержка JPEG
Отправлено: loMaster от Ноябрь 17, 2009, 11:18
Добрый день. Несколько аналогичная проблема, потому пишу здесь. Нужно написать приложение, работающее с JPEG под несколькими осями. Скачал инсталляторы с сайта QT, поставил. под виндой все работает. Чтобы запустить приложение на машине без установленной QT оказалось достаточно скопировать несколько библиотечек.  C маком все гораздо сложнее. На машине с установленной QT все работает. На других нет.  Что откуда взять я так и не понял. Попробовал скачать исходники и скомпилировать QT с поддержкой статических либ.
./configure -prefix /Developer/Qt -qt-zlib -qt-libpng -qt-libjpeg -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk -static -release
размер откомпилированного приложения стал примерно равен размеру приложения со всеми необходимыми библиотеками под виндой, приложение запускается на маке без QT и даже под другой ОС, процессором(компилируется под 10.4, PowerPC, проверялось уже на макбуке под леопардом) однако jpeg картинки не открываются (даже на тестовом маке с установленной QT).
банально ничего не происходит
QImage sIm;
 sIm.load( fileName ); возвращает нулл
в папке plugins/imageformats/ есть файлик libqjpeg.a Попробовал его напрямую прикрутить к приложению (подправив Makefile) не помогло.
Сейчас попробую прикрутить системную поддержку JPEG. может, поможет. Хотя мак, который нам выделили для экспериментов жутко тормозной. make для QT выполняется часов 6, если не больше.


Название: Re: Поддержка JPEG
Отправлено: Авварон от Ноябрь 17, 2009, 11:23
поищи по форуму, возможно в разделе мака, кто-то клал ссылку на документацию как развертывать под мак. Также вбей в ассистанте что-нибудь типа deploy on mac. Там надо фреймфорки кидать в .app, если я правильно помню. А плагины 100% кидаются в *.app/contens/MacOS/imageformats как и в винде
added: вот, нашел http://www.prog.org.ru/topic_9461_0.html


Название: Re: Поддержка JPEG
Отправлено: Sergey B. от Ноябрь 17, 2009, 11:47
На windows
положить папку imageformats в каталог с exe файлом.


Название: Re: Поддержка JPEG
Отправлено: loMaster от Ноябрь 17, 2009, 12:48
А плагины 100% кидаются в *.app/contens/MacOS/imageformats как и в винде
added: вот, нашел http://www.prog.org.ru/topic_9461_0.html
Попробовал фреймворк кинуть. Один только QtGui весит 160Мб. имхо многовато.
Так-же попробовал плагины засунуть. Понапихал куда только можно, не прокатило. Сейчас жду, когда отработает мейк с -system-jpeg. посмотрим. может это что-то даст.
Под виндой для запуска приложения понадобились только QtCore4.dll, QtGui4.dll, QtXml4.dll, mingwm10.dll. никакие плагины не нужны. на все про все 16Мб. (в дебаг компиляции уже другие либы и там да.. за сотню)


Название: Re: Поддержка JPEG
Отправлено: Авварон от Ноябрь 17, 2009, 14:39
160 метров это дебаг скорее всего... нужно смотреть, где-то есть и те и те библиотеки, надой найти:) Мне самому предстоит в скорости делать сборку программы, но уж очень не хочется юзать статику, так что отпишись, если результаты будут


Название: Re: Поддержка JPEG
Отправлено: Alex Custov от Ноябрь 17, 2009, 16:21
Еще есть при сборке Qt опция что-то типа "use system JPEG support" или что-то подобное. КТо-нибудь знает что это означает, что это дает?

Image плагин будет использовать системную libjpeg вместо встроенной в Qt.


Название: Re: Поддержка JPEG
Отправлено: mycoding от Декабрь 13, 2009, 21:09
Ребята у меня тоже штука, на моём компе пашет, на другом где нет qt нет. я даже пробовал ставить qt другой версии, и пришёл к выводу
в какой версии откомпилил, такая должна быть на другом компе.
Меня интерисует винда. Подскажите, я тоже папку plugins а в ней imageformats а в ней qjpeg4.dll делал, но не пашет...


Название: Re: Поддержка JPEG
Отправлено: break от Декабрь 13, 2009, 22:03
Ребята у меня тоже штука, на моём компе пашет, на другом где нет qt нет. я даже пробовал ставить qt другой версии, и пришёл к выводу
в какой версии откомпилил, такая должна быть на другом компе.
Меня интерисует винда. Подскажите, я тоже папку plugins а в ней imageformats а в ней qjpeg4.dll делал, но не пашет...

1) Естественно что надо использовать dll той же версии иначе можно нарваться на большие проблемы
2) сталкивался с проблемой подобной вашей - нашел 100% верное решение - но возмолжно оно не очень удобно - надо папку imageformats с нужными dll разметсить именно там где она было на той машине на которой компилялось - тогда все будет работать - всякие подкидывания в системные папки и рядос с exeшником мне не помогали!, а это работает.


Название: Re: Поддержка JPEG
Отправлено: crossly от Декабрь 18, 2009, 14:49
The search path for Qt plugins is hard-coded into the QtCore library. By default, the plugins subdirectory of the Qt installation is the first plugin search path. However, pre-determined paths like the default one have certain disadvantages. For example, they may not exist on the target machine. For that reason, you need to examine various alternatives to make sure that the Qt plugins are found:

Using qt.conf. This approach is the recommended if you have executables in different places sharing the same plugins.
Using QApplication::addLibraryPath() or QApplication::setLibraryPaths(). This approach is recommended if you only have one executable that will use the plugin.
Using a third party installation utility to change the hard-coded paths in the QtCore library.
If you add a custom path using QApplication::addLibraryPath it could look like this:

 qApp->addLibraryPath("C:/customPath/plugins");
Then qApp->libraryPaths() would return something like this:

"C:/customPath/plugins " "C:/Qt/4.5.3/plugins" "E:/myApplication/directory/"

The executable will look for the plugins in these directories and the same order as the QStringList returned by qApp->libraryPaths(). The newly added path is prepended to the qApp->libraryPaths() which means that it will be searched through first. However, if you use qApp->setLibraryPaths(), you will be able to determend which paths and in which order they will be searched.

The How to Create Qt Plugins document outlines the issues you need to pay attention to when building and deploying plugins for Qt applications.