Russian Qt Forum
Сентябрь 21, 2024, 17:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Поддержка JPEG  (Прочитано 12350 раз)
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 и не думать больше о ней, но почему-то так не получается. А очень надо!
Записан
VAP
Гость
« Ответ #1 : Август 05, 2009, 20:50 »

У меня была такая же проблема, при переходе из Qt4.4.0 на 4.4.3, я ее даже на форуме подымал. Для себя решил просто - использовал jpeg.dll от предыдущей версии Qt4.4.0
Записан
boruh
Гость
« Ответ #2 : Август 05, 2009, 22:59 »

И что, это помогло?
Мы до этого использовали 4.3.3, но насколько я помню там тоже была та же самая проблема. Как я уже сказал, самое большое желание - это встроить поддержку джипега вообще в какой-нибудь QtCore, возможно ли это? Еще есть при сборке Qt опция что-то типа "use system JPEG support" или что-то подобное. КТо-нибудь знает что это означает, что это дает?
Записан
Vexator
Гость
« Ответ #3 : Август 06, 2009, 02:14 »

Qt 4.2.3 просто креплю папку /imageformats в каталог к exe
и jpeg так же как и gif  и др. пашет норм.
ну и dll ки, основные тоже
Записан
BaltikS
Гость
« Ответ #4 : Август 06, 2009, 05:27 »

В 4.5.2 тоже проблем нет...
Записан
boruh
Гость
« Ответ #5 : Август 07, 2009, 10:16 »

А в Висте пробовали? В Висте работает?
Записан
loMaster
Гость
« Ответ #6 : Ноябрь 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, если не больше.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Ноябрь 17, 2009, 11:23 »

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

Сообщений: 544



Просмотр профиля WWW
« Ответ #8 : Ноябрь 17, 2009, 11:47 »

На windows
положить папку imageformats в каталог с exe файлом.
Записан
loMaster
Гость
« Ответ #9 : Ноябрь 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Мб. (в дебаг компиляции уже другие либы и там да.. за сотню)
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Ноябрь 17, 2009, 14:39 »

160 метров это дебаг скорее всего... нужно смотреть, где-то есть и те и те библиотеки, надой найти:) Мне самому предстоит в скорости делать сборку программы, но уж очень не хочется юзать статику, так что отпишись, если результаты будут
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #11 : Ноябрь 17, 2009, 16:21 »

Еще есть при сборке Qt опция что-то типа "use system JPEG support" или что-то подобное. КТо-нибудь знает что это означает, что это дает?

Image плагин будет использовать системную libjpeg вместо встроенной в Qt.
Записан
mycoding
Гость
« Ответ #12 : Декабрь 13, 2009, 21:09 »

Ребята у меня тоже штука, на моём компе пашет, на другом где нет qt нет. я даже пробовал ставить qt другой версии, и пришёл к выводу
в какой версии откомпилил, такая должна быть на другом компе.
Меня интерисует винда. Подскажите, я тоже папку plugins а в ней imageformats а в ней qjpeg4.dll делал, но не пашет...
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #13 : Декабрь 13, 2009, 22:03 »

Ребята у меня тоже штука, на моём компе пашет, на другом где нет qt нет. я даже пробовал ставить qt другой версии, и пришёл к выводу
в какой версии откомпилил, такая должна быть на другом компе.
Меня интерисует винда. Подскажите, я тоже папку plugins а в ней imageformats а в ней qjpeg4.dll делал, но не пашет...

1) Естественно что надо использовать dll той же версии иначе можно нарваться на большие проблемы
2) сталкивался с проблемой подобной вашей - нашел 100% верное решение - но возмолжно оно не очень удобно - надо папку imageformats с нужными dll разметсить именно там где она было на той машине на которой компилялось - тогда все будет работать - всякие подкидывания в системные папки и рядос с exeшником мне не помогали!, а это работает.
Записан
crossly
Гость
« Ответ #14 : Декабрь 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.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.121 секунд. Запросов: 23.