Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
How can I open openexr image on qt widget
-
I wanted to know how I can open images in openexr format in qt, I got to do this with png, gif and etc, which are compatible with pixelmap
-
Hi
https://api.kde.org/frameworks/kimageformats/html/index.html
Supports OpenEXR but as far as i know Qt does not naively support it.
-
@mrjj Thanks for the help, but you have some idea how to install this or use pq my cmake is giving error and decompression in the dependency list here
-
@Nathan-Miguel
Hi
https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source/Details#kimageformatsIf you list the excact errors, im hopefull that someone can guess what is missing.
You might need to install openEXR first so plugin can find it.
-
@mrjj I used msvs 15, 17 win 64
The C compiler identification is MSVC 19.16.27024.1
The CXX compiler identification is MSVC 19.16.27024.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Could NOT find ECM (missing: ECM_DIR)- ECM (required version >= 5.53.0), Extra CMake Modules., https://projects.kde.org/projects/kdesupport/extra-cmake-modules
CMake Error at C:/Program Files/CMake/share/cmake-3.13/Modules/FeatureSummary.cmake:459 (message):
feature_summary() Error: REQUIRED package(s) are missing, aborting CMake
run.
Call Stack (most recent call first):
CMakeLists.txt:8 (feature_summary)Configuring incomplete, errors occurred!
See also "C:/Git/kimageformats/build/CMakeFiles/CMakeOutput.log".
-
@Nathan-Miguel said in How can I open openexr image on qt widget:
Extra CMake Modules., https://projects.kde.org/projects/kdesupport/extra-cmake-modules
It seems to want these also. But im not sure.
something likegit clone git://anongit.kde.org/extra-cmake-modules cd extra-cmake-modules mkdir build && cd build cmake .. make && sudo make install
but hold the horse a moment. Im only guessing so give it
a few hours in case someone knows exactly if thats correct.Update:
yep, should do it.
-
KDE requires their extra CMake modules. You can install them as any other KDE module
For a guide on how to compile and use the libraries see https://forum.qt.io/post/377923
-
@mrjj Sorry for the delay, but has some way to do this "make" on windows, because this seems to be compilavel so for linux
-
@VRonin @mrjj It worked out right here but now I'm with error in the qt files
The C compiler identification is MSVC 19.16.27024.1
The CXX compiler identification is MSVC 19.16.27024.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - doneNo qmake Qt5 binary found. Can't check QT_INSTALL_PREFIX
Looking for GLIBC
Looking for GLIBC - not found
Could not set up the appstream test. appstreamcli is missing.
CMake Error at CMakeLists.txt:21 (find_package):
Could not find a package configuration file provided by "Qt5Gui" (requested
version 5.9.0) with any of the following names:Qt5GuiConfig.cmake qt5gui-config.cmake
Add the installation prefix of "Qt5Gui" to CMAKE_PREFIX_PATH or set
"Qt5Gui_DIR" to a directory containing one of the above files. If "Qt5Gui"
provides a separate development package or SDK, be sure it has been
installed.Configuring incomplete, errors occurred!
See also "C:/Git/kimageformats/build/CMakeFiles/CMakeOutput.log".
See also "C:/Git/kimageformats/build/CMakeFiles/CMakeError.log".
-
@Nathan-Miguel I guess you need to use MinGW
-
@jsulm I used mingw but it gave an eros too.
The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
The CMAKE_C_COMPILER:cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.CMake Error at CMakeLists.txt:3 (project):
The CMAKE_CXX_COMPILER:cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.Configuring incomplete, errors occurred!
See also "C:/Git/kimageformats/build/CMakeFiles/CMakeOutput.log".
See also "C:/Git/kimageformats/build/CMakeFiles/CMakeError.log".
-
@jsulm @mrjj @VRonin is almost, I just need to find this folder that is highlighted and know how to include openexr libraries
Could not set up the appstream test. appstreamcli is missing.
CMake Warning at CMakeLists.txt:23 (find_package):
By not providing "FindKF5Archive.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"KF5Archive", but CMake did not find one.Could not find a package configuration file provided by "KF5Archive" with
any of the following names:KF5ArchiveConfig.cmake kf5archive-config.cmake
Add the installation prefix of "KF5Archive" to CMAKE_PREFIX_PATH or set
"KF5Archive_DIR" to a directory containing one of the above files. If
"KF5Archive" provides a separate development package or SDK, be sure it has
been installed.Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Could NOT find OpenEXR (missing: OpenEXR_ILMIMF_LIBRARY OpenEXR_HALF_LIBRARY OpenEXR_IEX_LIBRARY OpenEXR_IMATH_LIBRARY OpenEXR_ILMTHREAD_LIBRARY OpenEXR_INCLUDE_DIR)
The following REQUIRED packages have been found:- ECM (required version >= 5.53.0), Extra CMake Modules., https://projects.kde.org/projects/kdesupport/extra-cmake-modules
- Qt5Gui (required version >= 5.9.0)
-- The following OPTIONAL packages have not been found:
- KF5Archive
Required for the QImage plugin for Krita and OpenRaster images - PkgConfig
- OpenEXR, A library for handling OpenEXR high dynamic-range image files, http://www.openexr.com/
Required for the QImage plugin for OpenEXR images
Configuring done
Generating done
-
Did you get OpenEXR first ?
-
It worked out right here but now I'm with error in the qt files
No qmake Qt5 binary found. Can't check QT_INSTALL_PREFIXYou need to run qtenv2.bat as explained in the link I posted
but has some way to do this "make" on windows
Once you selected the right generator just call
cmake --build .
(don't forget the dot at the end) and CMake will automatically call the correct build toolCould not find a package configuration file provided by "KF5Archive" with
weird, KArchive is not listed as a dependency for KImageFormats. In any case it's a Tier1 Module of KDE
The following OPTIONAL packages have not been found:
KF5Archive
so it's just optional, cool.
P.S.
In my experience CMake GUI messed up my config more than it helped me build projects, I find it easier just doing it via the terminal
-
@SGaist Well I'm finishing compiling the remaining dependencies, but the only thing that gave me error was to install the fade pro python library "https://stefanseefeld.github.io/faber" I performed all the right steps but the system can not find directory or error on line 139
-
Can you give more details about what you did and what failed ?
-
CMAKE TERMINAL:
PS C:\Git\openexr\build> cmake --build . [ 0%] Built target eLut [ 1%] Built target toFloat [ 1%] Built target Half [ 2%] Built target Half_static [ 2%] Built target Iex [ 3%] Built target Iex_static [ 4%] Building CXX object IlmBase/IexMath/CMakeFiles/IexMath.dir/IexMathFloatExc.cpp.obj In file included from C:/Git/openexr/IlmBase/Iex/IexMathExc.h:40:0, from C:/Git/openexr/IlmBase/IexMath/IexMathFloatExc.h:58, from C:\Git\openexr\IlmBase\IexMath\IexMathFloatExc.cpp:43: C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:149:29: error: function 'Iex_2_3::ArgExc::ArgExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc) // Invalid arguments to a function call ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:149:29: error: function 'Iex_2_3::ArgExc::ArgExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc) // Invalid arguments to a function call ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:149:29: error: function 'Iex_2_3::ArgExc::ArgExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc) // Invalid arguments to a function call ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:149:29: error: function 'Iex_2_3::ArgExc::ArgExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc) // Invalid arguments to a function call ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::ArgExc::~ArgExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:149:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc) // Invalid arguments to a function call ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:151:29: error: function 'Iex_2_3::LogicExc::LogicExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc) // General error in a program's logic, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:151:29: error: function 'Iex_2_3::LogicExc::LogicExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc) // General error in a program's logic, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:151:29: error: function 'Iex_2_3::LogicExc::LogicExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc) // General error in a program's logic, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:151:29: error: function 'Iex_2_3::LogicExc::LogicExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc) // General error in a program's logic, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::LogicExc::~LogicExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:151:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc) // General error in a program's logic, ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:156:29: error: function 'Iex_2_3::InputExc::InputExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc) // Invalid input data, e.g. from a file ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:156:29: error: function 'Iex_2_3::InputExc::InputExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc) // Invalid input data, e.g. from a file ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:156:29: error: function 'Iex_2_3::InputExc::InputExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc) // Invalid input data, e.g. from a file ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:156:29: error: function 'Iex_2_3::InputExc::InputExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc) // Invalid input data, e.g. from a file ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::InputExc::~InputExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:156:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc) // Invalid input data, e.g. from a file ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:158:29: error: function 'Iex_2_3::IoExc::IoExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc) // Input or output operation failed ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:158:29: error: function 'Iex_2_3::IoExc::IoExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc) // Input or output operation failed ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:158:29: error: function 'Iex_2_3::IoExc::IoExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc) // Input or output operation failed ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:158:29: error: function 'Iex_2_3::IoExc::IoExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc) // Input or output operation failed ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::IoExc::~IoExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:158:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc) // Input or output operation failed ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:160:29: error: function 'Iex_2_3::MathExc::MathExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc) // Arithmetic exception; more specific ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:160:29: error: function 'Iex_2_3::MathExc::MathExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc) // Arithmetic exception; more specific ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:160:29: error: function 'Iex_2_3::MathExc::MathExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc) // Arithmetic exception; more specific ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:160:29: error: function 'Iex_2_3::MathExc::MathExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc) // Arithmetic exception; more specific ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::MathExc::~MathExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:160:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc) // Arithmetic exception; more specific ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:164:29: error: function 'Iex_2_3::ErrnoExc::ErrnoExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc) // Base class for exceptions corresponding ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:164:29: error: function 'Iex_2_3::ErrnoExc::ErrnoExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc) // Base class for exceptions corresponding ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:164:29: error: function 'Iex_2_3::ErrnoExc::ErrnoExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc) // Base class for exceptions corresponding ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:164:29: error: function 'Iex_2_3::ErrnoExc::ErrnoExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc) // Base class for exceptions corresponding ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::ErrnoExc::~ErrnoExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:164:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc) // Base class for exceptions corresponding ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:169:29: error: function 'Iex_2_3::NoImplExc::NoImplExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:169:29: error: function 'Iex_2_3::NoImplExc::NoImplExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:169:29: error: function 'Iex_2_3::NoImplExc::NoImplExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:169:29: error: function 'Iex_2_3::NoImplExc::NoImplExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::NoImplExc::~NoImplExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:169:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:175:29: error: function 'Iex_2_3::NullExc::NullExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc) // A pointer is inappropriately null. ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:175:29: error: function 'Iex_2_3::NullExc::NullExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc) // A pointer is inappropriately null. ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:175:29: error: function 'Iex_2_3::NullExc::NullExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc) // A pointer is inappropriately null. ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:175:29: error: function 'Iex_2_3::NullExc::NullExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc) // A pointer is inappropriately null. ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::NullExc::~NullExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:175:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc) // A pointer is inappropriately null. ^~~~~~~~~~~~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:177:29: error: function 'Iex_2_3::TypeExc::TypeExc()' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc) // An object is an inappropriate type, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:135:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name() throw(): base (0) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:177:29: error: function 'Iex_2_3::TypeExc::TypeExc(const char*)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc) // An object is an inappropriate type, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:136:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const char* text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:177:29: error: function 'Iex_2_3::TypeExc::TypeExc(const string&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc) // An object is an inappropriate type, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:137:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (const std::string &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:177:29: error: function 'Iex_2_3::TypeExc::TypeExc(std::stringstream&)' definition is marked dllimport DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc) // An object is an inappropriate type, ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:138:13: note: in definition of macro 'DEFINE_EXC_EXP' exp name (std::stringstream &text) throw(): base (text) {} \ ^~~~ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:139:13: error: function 'Iex_2_3::TypeExc::~TypeExc()' definition is marked dllimport exp ~name() throw() { } \ ^ C:/Git/openexr/IlmBase/Iex/IexBaseExc.h:177:1: note: in expansion of macro 'DEFINE_EXC_EXP' DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc) // An object is an inappropriate type, ^~~~~~~~~~~~~~ IlmBase\IexMath\CMakeFiles\IexMath.dir\build.make:62: recipe for target 'IlmBase/IexMath/CMakeFiles/IexMath.dir/IexMathFloatExc.cpp.obj' failed mingw32-make.exe[2]: *** [IlmBase/IexMath/CMakeFiles/IexMath.dir/IexMathFloatExc.cpp.obj] Error 1 CMakeFiles\Makefile2:1294: recipe for target 'IlmBase/IexMath/CMakeFiles/IexMath.dir/all' failed mingw32-make.exe[1]: *** [IlmBase/IexMath/CMakeFiles/IexMath.dir/all] Error 2 Makefile:161: recipe for target 'all' failed mingw32-make.exe: *** [all] Error 2 CMAKE GUI CMake Warning at CMakeLists.txt:143 (message): Viewers are currently out of order. Building anyway Found OpenGL: opengl32 Could NOT find FLTK (missing: FLTK_LIBRARIES FLTK_INCLUDE_DIR) CMake Warning at CMakeLists.txt:147 (message): FLTK not found, exrdisplay will not be built ILMBASE_PACKAGE_PREFIX = C:/Program Files (x86)/OpenEXR INFO,Skipping Python bindings INFO,Skipping OpenEXR Viewers Configuring done Generating done
-
@SGaist I also try to compile without selecting these options python lib and openexr viewer as well as in the image. python was because I could not install the "Faber" and the viewer was because I could not install the fltk tbm
-
@SGaist If you have a problem with linux on linux, I would like to install linux on linux, because it is horrible to program on windows in C ++ on my opinion
-
@Nathan-Miguel said in How can I open openexr image on qt widget:
@SGaist If you have a problem with linux on linux, I would like to install linux on linux, because it is horrible to program on windows in C ++ on my opinion
Install Linux on Linux ? What do you mean by that ?
In any case, you don't really need the viewer since you want to use Qt to show the images.
-
@SGaist sorry for my keyboard and brazil, sometimes it fixes the errors alone, but what I wanted to say and if it would be easier to program this in linux and if you have how to compile windows files direct in linux. But continuing, where I can find this "FLTK_GL_LIBRARY", and about python it seems that cmake is using 2.7 and not the 3.7 to install the python boost.
CMake Warning at CMakeLists.txt: 143 (message): Viewers are currently out of order. Building anyway ILMBASE_PACKAGE_PREFIX = C: / Program Files (x86) / OpenEXR INFO, Skipping Python bindings OPENEXR_PACKAGE_PREFIX = CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please make them or make sure they are set and tested correctly in the CMake files: FLTK_GL_LIBRARY linked by target "exrdisplay" in directory C: / Git / openexr / OpenEXR_Viewers / exrdisplay Configuring incomplete, errors occurred! See also "C: /Git/openexr/build/CMakeFiles/CMakeOutput.log".
-
@SGaist I've been able to compile all but that's missing so I can finish compiling Kimageformat, "https://api.kde.org/frameworks/karchive/html/index.html"
Could not set up the appstream test. appstreamcli is missing.
Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
Could NOT find LibLZMA (missing: LIBLZMA_INCLUDE_DIR LIBLZMA_LIBRARY LIBLZMA_HAS_AUTO_DECODER LIBLZMA_HAS_EASY_ENCODER LIBLZMA_HAS_LZMA_PRESET)
The following OPTIONAL packages have been found:* Qt5Network
- The following REQUIRED packages have been found:
* ECM (required version> = 5.53.0), Extra CMake Modules., Https://projects.kde.org/projects/kdesupport/extra-cmake-modules
* ZLIB, Support for gzip compressed files and data streams, http://www.zlib.net
Required by the core KDE libraries and some critical kioslaves
* Qt5Core- The following features have been disabled:
* QCH, API documentation in QCH format (for eg Qt Assistant, Qt Creator & KDevelop)
- The following OPTIONAL packages have not been found:
* LibLZMA, Support for xz compressed files and data streams, http://tukaani.org/xz/
Support for xz compressed files and data streams- The following RECOMMENDED packages have not been found:
* BZip2, Support for BZip2 compressed files and data streams, https://sourceware.org/bzip2/
Support for BZip2 compressed files and data streamsConfiguring done
Generating done
-
@SGaist Sorry bother, but now I've been able to install everything, thanks to everyone, but how can I include this in my project
-
@Nathan-Miguel said in How can I open openexr image on qt widget:
but how can I include this in my project
http://doc.qt.io/qt-5/third-party-libraries.html
http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html
-
@VRonin only have a problem, I just see these files for me and what does not accept other formats of includes other than .h, .lib, .a
-
You don't have to link against them. They are plugins that will be loaded at run time.
You may have to add a call to QCoreApplication::addLibraryPath for your application to find them.
-
@SGaist there is a problem so, cmake is not wanting to include the openexr library in kimageformat, and this makes my program compatible with psd, krikta and others except openexr
-
@SGaist I was able to make cmake find them but I still have an error compiling openexr's ".lib"
CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `K_IStream::read(char*, int)': C:/Git/kimageformats/src/imageformats/exr.cpp:61: undefined reference to `Iex_2_3::throwErrnoExc(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `EXRHandler::read(QImage*)': C:/Git/kimageformats/src/imageformats/exr.cpp:169: undefined reference to `Imf_2_3::globalThreadCount()' C:/Git/kimageformats/src/imageformats/exr.cpp:169: undefined reference to `Imf_2_3::RgbaInputFile::RgbaInputFile(Imf_2_3::IStream&, int)' C:/Git/kimageformats/src/imageformats/exr.cpp:170: undefined reference to `Imf_2_3::RgbaInputFile::dataWindow() const' C:/Git/kimageformats/src/imageformats/exr.cpp:178: undefined reference to `Imf_2_3::RgbaInputFile::setFrameBuffer(Imf_2_3::Rgba*, unsigned long long, unsigned long long)' C:/Git/kimageformats/src/imageformats/exr.cpp:179: undefined reference to `Imf_2_3::RgbaInputFile::readPixels(int, int)'C:/Git/kimageformats/src/imageformats/exr.cpp:169: undefined reference to `Imf_2_3::RgbaInputFile::~RgbaInputFile()' C:/Git/kimageformats/src/imageformats/exr.cpp:169: undefined reference to `Imf_2_3::RgbaInputFile::~RgbaInputFile()' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `EXRHandler::canRead(QIODevice*)': C:/Git/kimageformats/src/imageformats/exr.cpp:212: undefined reference to `Imf_2_3::isImfMagic(char const*)' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `Iex_2_3::InputExc::InputExc(char const*)': C:/PROGRA~1/OpenEXR/include/OpenEXR/IexBaseExc.h:156: undefined reference to `Iex_2_3::BaseExc::BaseExc(char const*)' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `Iex_2_3::InputExc::~InputExc()': C:/PROGRA~1/OpenEXR/include/OpenEXR/IexBaseExc.h:156: undefined reference to `Iex_2_3::BaseExc::~BaseExc()' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `K_IStream::K_IStream(QIODevice*, QByteArray const&)': C:/Git/kimageformats/src/imageformats/exr.cpp:40: undefined reference to `Imf_2_3::IStream::IStream(char const*)' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj):exr.cpp:(.rdata$_ZTV9K_IStream[_ZTV9K_IStream]+0x20): undefined reference to `Imf_2_3::IStream::isMemoryMapped() const' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj):exr.cpp:(.rdata$_ZTV9K_IStream[_ZTV9K_IStream]+0x30): undefined reference to `Imf_2_3::IStream::readMemoryMapped(int)' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj): In function `K_IStream::~K_IStream()': C:/Git/kimageformats/src/imageformats/exr.cpp:36: undefined reference to `Imf_2_3::IStream::~IStream()' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj):exr.cpp:(.rdata$_ZTVN7Iex_2_38InputExcE[_ZTVN7Iex_2_38InputExcE]+0x20): undefined reference to `Iex_2_3::BaseExc::what() const' CMakeFiles\kimg_exr.dir/objects.a(exr.cpp.obj):exr.cpp:(.rdata$.refptr._ZN4half8_toFloatE[.refptr._ZN4half8_toFloatE]+0x0): undefined reference to `half::_toFloat' collect2.exe: error: ld returned 1 exit status mingw32-make.exe[2]: *** [src\imageformats\CMakeFiles\kimg_exr.dir\build.make:107: bin/imageformats/kimg_exr.dll] Error 1 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:200: src/imageformats/CMakeFiles/kimg_exr.dir/all] Error 2 mingw32-make.exe: *** [Makefile:140: all] Error 2
-
Can you check in which OpenEXR library you have these symbols ? It's likely the llmlmf library but better double check.
-
@SGaist strange, because all the libs here are good, until the includes are complete
-
I didn't meant you are missing a library, just wondering which one contains the missing symbols and thus if you are linking against it.
-
@SGaist The log says that "moc_predefs.h" is giving the library error to generate kimg_exr.dll, more briefly, but what can I do to correct it, I tried to switch between VS and mingw
[ 1%] Automatic MOC for target kimg_exr
AutoMoc subprocess error
The content generation command for "moc_predefs.h" failed.
Command
C:/Qt/Tools/mingw730_64/bin/g++.exe -dM -E -c "C:/Program Files/CMake/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp" -IC:/Git/kimageformats/build/src/imageformats -IC:/Git/kimageformats/src/imageformats -IC:/Qt/5.12.0/mingw73_64/include -IC:/Qt/5.12.0/mingw73_64/include/QtGui -IC:/Qt/5.12.0/mingw73_64/include/QtANGLE -IC:/Qt/5.12.0/mingw73_64/include/QtCore -IC:/Qt/5.12.0/mingw73_64/./mkspecs/win32-g++ "-IC:/Program Files/OpenEXR/include/OpenEXR" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DUNICODE -DWIN32_LEAN_AND_MEAN -DWINVER=0x0600 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D_USE_MATH_DEFINES -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0600 -DWIN32
Output
src\imageformats\CMakeFiles\kimg_exr_autogen.dir\build.make:56: recipe for target 'src/imageformats/CMakeFiles/kimg_exr_autogen' failed mingw32-make.exe[2]: *** [src/imageformats/CMakeFiles/kimg_exr_autogen] Error 1 CMakeFiles\Makefile2:569: recipe for target 'src/imageformats/CMakeFiles/kimg_exr_autogen.dir/all' failed mingw32-make.exe[1]: *** [src/imageformats/CMakeFiles/kimg_exr_autogen.dir/all] Error 2 Makefile:139: recipe for target 'all' failed mingw32-make.exe: *** [all] Error 2
-
You can't mix and match C++ libraries built with VS and MinGW, you have to always use the same compiler.
-
I tried to build it myself but I must admit I too struggle with getting openexr to link. I will post my progress below anyway to make it more accessible to other people to try and fix this. The commands should create a zip file containing each dependency and a zip file containing the KDE API libraries but I can't get the final link over the line
The series of commands I used can be replicated to build all the dependencies and the library (as you can see, I built with Qt5.12 on MSVC 2015):
set cmake_path=C:\Program Files\CMake\bin set 7zip_path=C:\Program Files\7-Zip set git_path=C:\Program Files\Git\bin set qt_path=C:\Qt\5.12\msvc2015_64 set curl_path=C:\libcurl\bin set compiler_path=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC set comp_platform=amd64 set use_mingw=false set originalWD=%CD% set PATH=%cmake_path%;%git_path%;%curl_path%;%7zip_path%;%PATH% call "%qt_path%\bin\qtenv2.bat" cd %originalWD% echo on if %use_mingw%==true set PATH=%compiler_path%;%PATH% if %use_mingw%==false call "%compiler_path%\vcvarsall.bat" %comp_platform% if %use_mingw%==true (set CMAKEGENERATOR="MinGW Makefiles") else (set CMAKEGENERATOR="NMake Makefiles") mkdir .\bzip2src && cd .\bzip2src curl -k -L https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5/bzip2-1.0.5-src.zip --output bzip2.zip 7z x bzip2.zip del /F /Q bzip2.zip cd src\bzip2\1.0.5\bzip2-1.0.5\ mkdir build && cd build echo cmake_minimum_required(VERSION 3.5) >> ..\CMakeLists.txt echo project(bzip2 C) >> ..\CMakeLists.txt echo set(bzip2_VERSION 1.0.5) >> ..\CMakeLists.txt echo set(bzip2_SRCS >> ..\CMakeLists.txt echo bzlib.c >> ..\CMakeLists.txt echo blocksort.c >> ..\CMakeLists.txt echo huffman.c >> ..\CMakeLists.txt echo crctable.c >> ..\CMakeLists.txt echo compress.c >> ..\CMakeLists.txt echo decompress.c >> ..\CMakeLists.txt echo randtable.c >> ..\CMakeLists.txt echo ) >> ..\CMakeLists.txt echo add_library(bzip2 SHARED ${bzip2_SRCS}) >> ..\CMakeLists.txt echo install(TARGETS bzip2 >> ..\CMakeLists.txt echo EXPORT bzip2 >> ..\CMakeLists.txt echo RUNTIME DESTINATION bin COMPONENT library >> ..\CMakeLists.txt echo LIBRARY DESTINATION lib COMPONENT library >> ..\CMakeLists.txt echo ARCHIVE DESTINATION lib COMPONENT library >> ..\CMakeLists.txt echo ) >> ..\CMakeLists.txt echo install(FILES bzlib.h >> ..\CMakeLists.txt echo DESTINATION include >> ..\CMakeLists.txt echo COMPONENT headers >> ..\CMakeLists.txt echo ) >> ..\CMakeLists.txt cmake -G %CMAKEGENERATOR% -DCMAKE_INSTALL_PREFIX=../../../../../../bzip2 -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\..\..\..\..\ set PATH=%CD%\bzip2;%PATH% 7z a -tzip bzip2.zip .\bzip2\* mkdir .\liblzma && cd .\liblzma curl -k -L https://tukaani.org/xz/xz-5.2.4-windows.zip --output liblzma.zip 7z x liblzma.zip del /F /Q liblzma.zip if %use_mingw%==true (ren bin_i686 lib) else (mkdir lib && mkdir bin) if %use_mingw%==false curl -k -L https://tukaani.org/xz/xz-5.2.4.tar.gz --output liblzma.tar.gz if %use_mingw%==false 7z x liblzma.tar.gz if %use_mingw%==false del /F /Q liblzma.tar.gz if %use_mingw%==false 7z x liblzma.tar if %use_mingw%==false del /F /Q liblzma.tar if %use_mingw%==false cd xz-5.2.4\windows\vs2013 if %comp_platform%==x86 if %use_mingw%==false msbuild xz_win.sln /property:Configuration=Release /property:Platform=Win32 && xcopy /Y /I /K Release\Win32\liblzma_dll\*.dll ..\..\..\bin && xcopy /Y /I /K Release\Win32\liblzma_dll\*.lib ..\..\..\lib if %comp_platform%==amd64 if %use_mingw%==false msbuild xz_win.sln /property:Configuration=Release /property:Platform=x64 && xcopy /Y /I /K Release\x64\liblzma_dll\*.dll ..\..\..\bin && xcopy /Y /I /K Release\x64\liblzma_dll\*.lib ..\..\..\lib if %use_mingw%==false cd ..\..\..\ set PATH=%CD%;%PATH% cd ..\ 7z a -tzip liblzma.zip .\liblzma\include\ 7z a -tzip liblzma.zip .\liblzma\lib\ if %use_mingw%==false 7z a -tzip liblzma.zip .\liblzma\bin\ git clone https://github.com/madler/zlib.git zlibBuild cd zlibBuild mkdir .\build && cd .\build cmake -G %CMAKEGENERATOR% -DCMAKE_INSTALL_PREFIX=../../zlib -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\ 7z a -tzip zlib.zip .\zlib\* set PATH=%CD%\zlib;%PATH% git clone https://github.com/openexr/openexr.git OpenEXRsrc cd OpenEXRsrc mkdir .\build && cd .\build cmake -G %CMAKEGENERATOR% -DOPENEXR_NAMESPACE_VERSIONING=OFF -DOPENEXR_BUILD_PYTHON_LIBS=OFF -DCMAKE_DEBUG_POSTFIX=d -DOPENEXR_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../OpenEXR -DCMAKE_BUILD_TYPE=DEBUG ../ cmake --build . cmake --build . --target install cmake -G %CMAKEGENERATOR% -DOPENEXR_NAMESPACE_VERSIONING=OFF -DOPENEXR_BUILD_PYTHON_LIBS=OFF -DOPENEXR_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../OpenEXR -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\ 7z a -tzip OpenEXR.zip .\OpenEXR\* set PATH=%CD%\OpenEXR;%PATH% git clone git://anongit.kde.org/extra-cmake-modules ECM cd ECM mkdir .\build && cd .\build cmake -G %CMAKEGENERATOR% -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=../../ECMbuild -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\ set PATH=%CD%\ECMbuild;%PATH% git clone git://anongit.kde.org/karchive.git KArchive cd KArchive mkdir .\build && cd .\build cmake -G %CMAKEGENERATOR% -DBUILD_TESTING=OFF -DCMAKE_DEBUG_POSTFIX=d -DCMAKE_INSTALL_PREFIX=../../KDEAPI -DCMAKE_BUILD_TYPE=DEBUG ../ cmake --build . cmake --build . --target install cmake -G %CMAKEGENERATOR% -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=../../KDEAPI -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\ set PATH=%CD%\KDEAPI;%PATH% git clone git://anongit.kde.org/kimageformats.git KImageFormats cd KImageFormats mkdir .\build && cd .\build cmake -G %CMAKEGENERATOR% -DBUILD_TESTING=OFF -DCMAKE_DEBUG_POSTFIX=d -DCMAKE_INSTALL_PREFIX=../../KDEAPI -DCMAKE_BUILD_TYPE=DEBUG ../ cmake --build . cmake --build . --target install cmake -G %CMAKEGENERATOR% -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=../../KDEAPI -DCMAKE_BUILD_TYPE=RELEASE ../ cmake --build . cmake --build . --target install cd ..\..\ 7z a -tzip KDElib.zip .\KDEAPI\*
You'll need to have installed 7-zip, curl, CMake and git.
You'll need to change the initial lines to match your system:set cmake_path=C:\Program Files\CMake\bin
: path to the CMake executableset 7zip_path=C:\Program Files\7-Zip
: path to the 7-zip executableset git_path=C:\Program Files\Git\bin
: path to the git executableset qt_path=C:\Qt\5.12\msvc2015_64
: path to your qt directoryset curl_path=C:\libcurl\bin
: path to the curl executableset compiler_path=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
: path to the compiler binary folderset comp_platform=amd64
can be eitheramd64
orx86
determines if the build is 64 or 32 bitset use_mingw=false
set to true if you use MinGW or false if you use MSVC
One final thing, if you use MinGW you might need to adjust the line
if %use_mingw%==true (ren bin_i686 lib) else (mkdir lib && mkdir bin)
changingbin_i686
to the name of the folder containing the libraries that match your compiler (there are 3 available)
-
@SGaist @VRonin you save my lifeeeeeee. but Well I chose to use VS because mingw gave object error, but how can I include it in qt now, you can give a clearer explanation because documentation is confusing
-
@Nathan-Miguel said in How can I open openexr image on qt widget:
but how can I include it in qt
I imagine you mean Qt Creator. Right click on your project -> add library -> external library -> select the .lib file and the include directory (the d suffix should be detected automatically).
-
@VRonin even the libs was fine, but in question my qt still does not open and I still have some doubts,
- Do I need to add the openexr and libs includes?
- Can I continue using the QPixelmap label?
- In kimageformat did not come any include in .h, do I have to use .desktop or use the openexr includes to open the image?
This is the function I'm using to open an image
void MainWindow::on_actionOpen_Image_triggered() { QString filter = "Imagens (*.bmp *.cur *.gif *icns *.ico *.jpg *.jpeg *.pdm *.pgm *.png *.ppm *.svg *.tga *.tif *.tiff *.wbmp *.webp *.xmb *.xpm) ;; All Files (*.*)"; QString filename = QFileDialog::getOpenFileName(this, "Open", QDir::homePath(), filter); QFile file(filename); QImage image(filename); if (!image.isNull()) { QImage image(filename); image = image.scaledToWidth(ui->labelimg->width(), Qt::SmoothTransformation); image = image.scaledToWidth(ui->labelimg->height(), Qt::SmoothTransformation); ui->labelimg->setPixmap(QPixmap::fromImage(image)); } else { QMessageBox::warning(this, "Error", "Image can not open"); filename = ""; } }
-
Where did you install the plugins ?
You can also set theQT_DEBUG_PLUGINS
environment variable to 1 in the Run part of the Project panel to see what is happening.
-
@SGaist The .desktop files are in the files and programs folder, the libs continued in the folder on I compiled, which was in C: / Git / kimageformat / build, and the dll were for the qt compiler itself, msvc2017-64 in the plugin / image folder
One more thing, in this directory "C: \ Qt \ 5.12.0 \ msvc2017_64 \ plugins \ imageformats", I realized that the "tga" format, had tbm support here, and gives the same error when I try to open open exr in the app debug "QImage :: scaleWidth: Image is a null image".
First I used the .dll, .pdb files with this name "kimg_exr", then renamed "qexr", both the dll and the pdb, but it still did not work, nor with the native tga that worked right.
And if it is useful these are my includes
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDesktopServices> #include <QMessageBox> #include <QUrl> #include <QFile> #include <QFileDialog> #include <QImage> #include <QPixmap> #include <QImageIOPlugin> #include <QImageIOHandler>
source code: https://github.com/nathanmiguel123/Denoiser-Script
-
Did you call
nmake install
at some point ?