Название: Qt и jpeg, jtiff
Отправлено: CyclicBarrier от Февраль 03, 2012, 13:16
Возможно ли как-то руками подгрузить плагины jpeg и jtiff без создания QApplication? В самом приложении они нормально грузятся и работают, а в тестах где нет создания QApplication они автоматически не находятся.
Название: Re: Qt и jpeg, jtiff
Отправлено: GreatSnake от Февраль 03, 2012, 13:34
Вот так я гружу jpeg-и используя локальный qjpeg: C++ (Qt) bool QULoadJpegImage( QImage* img, const QString& fname ) { QFile path( fname ); if( !path.exists() ) return false; static QPluginLoader* pl; if( !pl ) { QStringList dirs; dirs << QCoreApplication::applicationDirPath(); #ifndef Q_OS_WIN dirs << QString( qgetenv( "LD_LIBRARY_PATH" ) ).split( ':' ) << qgetenv( "QTDIR" ) + "/plugins/imageformats"; #endif // try to load own qjpeg plugin for( int i = 0; i < dirs.count(); i++ ) { QDir ldir( dirs.at( i ), "*qjpeg*", QDir::Unsorted, QDir::Files ); if( !ldir.exists() ) continue; QStringList l( ldir.entryList() ); for( QStringList::iterator it = l.begin(); it != l.end(); ++it ) { if( !QLibrary::isLibrary( *it ) ) continue; if( pl ) delete pl; pl = new QPluginLoader( ldir.filePath( *it ) ); if( pl && pl->load() ) break; } if( pl ) break; } } QImageIOPlugin* plugin; if( pl && ( plugin = qobject_cast< QImageIOPlugin* >( pl->instance() ) ) ) { if( QImageIOHandler* handler = plugin->create( &path, "jpeg" ) ) { if( handler->read( img ) ) return true; } } return false; }
Название: Re: Qt и jpeg, jtiff
Отправлено: kambala от Февраль 03, 2012, 14:28
на мак ос нужно использовать DYLD_LIBRARY_PATH вместо LD_LIBRARY_PATH
|