Image plugin
-
Hello, Qt support basic image formats such as jpg, gif, png, ...
I need to support more image formats in my application.
Here is the site I found how to do it.
https://doc.qt.io/archives/qq/qq17-imageio.html
But I need to build my application statically and as far as I know if I build statically, I cannot use plugin.
Then how can I support more image formats if I compile statically? -
Hello,
By that logic static version of Qt won't support jpeg / gif etc.
Yes it's possible and supported, please do see doc: http://doc.qt.io/qt-5/plugins-howto.html#static-plugins -
@samdol Also make sure you're aware of the licensing issues if you build statically. If you are not using the commercial license distributing a static binary would put you in violation of the license agreement and could get you in some serious financial trouble. ;)
-
Hello,
By that logic static version of Qt won't support jpeg / gif etc.
Yes it's possible and supported, please do see doc: http://doc.qt.io/qt-5/plugins-howto.html#static-plugins -
@samdol
No it means that Creator, the Qt IDE / Editor cannot be build as a static
Qt application as it really needs to use dynamic loading.You can however create a new Image Plugin and static link with your application.
But you cannot mix statically compiled Qt App and then use plugins dynamically.So you cannot have static Qt app and dynamic loading plugins.
Meaning your STATIC linked App cannot at runtime load extra plugins.
BUt you are free to link new ones in and that way support new formats.Can I ask what image format you want to add?
Also if dynamic loading is important, why use static linking ?
-
@samdol
I think You did read this out of context, see:There are at least two reasons for not building static versions of the GUI tools. First, releasing a new version of an application is typically a task that you automate using a script and there is no need for GUI tools at this stage. Second, it is probably impossible to build a static version of Qt Creator because of the lack of support for plugins in a static environment.
This paragraph talks about QtCreator and it's plugins. QtCreator uses multiple "plugins", see QtCreator -> About Plugins page and I do suspect that this do refer to some of them (Device support ???).
As I said before QImageIOPlugin do support static linkage. Case in point iOS. Deploying Qt app on iOS is statically linked and it do support images.
PS. @mrjj replied while I was typing.
-
@samdol
No it means that Creator, the Qt IDE / Editor cannot be build as a static
Qt application as it really needs to use dynamic loading.You can however create a new Image Plugin and static link with your application.
But you cannot mix statically compiled Qt App and then use plugins dynamically.So you cannot have static Qt app and dynamic loading plugins.
Meaning your STATIC linked App cannot at runtime load extra plugins.
BUt you are free to link new ones in and that way support new formats.Can I ask what image format you want to add?
Also if dynamic loading is important, why use static linking ?
-
@mrjj
Thank you mrjj and LuGRU,
It seems the static liking to Plugin is the way to go. Dynamic loading is not important.
For now, I would like to support RAF CRW image formats.
And enventually I need to support pcx, pnm, psd, rgb, eps and NEF formats.@samdol
Hi
PSD itself is pretty hardcore. Maybe this can provide starting point
https://github.com/Code-ReaQtor/libqpsd -
@samdol
Hi
PSD itself is pretty hardcore. Maybe this can provide starting point
https://github.com/Code-ReaQtor/libqpsd -
@samdol
Hi do you mean a raw image format like in cameras or just raw as in no header etc?
http://stackoverflow.com/questions/18637721/how-to-display-a-raw-image-file-in-a-qt-gui -
@samdol
Hi do you mean a raw image format like in cameras or just raw as in no header etc?
http://stackoverflow.com/questions/18637721/how-to-display-a-raw-image-file-in-a-qt-gui -
@samdol
Hi do you mean a raw image format like in cameras or just raw as in no header etc?
http://stackoverflow.com/questions/18637721/how-to-display-a-raw-image-file-in-a-qt-gui -
@samdol said in Image plugin:
CRW
Nope, never saw such plugin. For some camera vendors you have to use the SDK to read it.
http://amin-ahmadi.com/2016/06/09/how-to-handle-canon-eos-raw-images-in-qt-c/Alternatively, you can use a lib
http://www.libraw.org/
and use to convert to format that you can
load or embed into Qt app so it can load native. -
@samdol said in Image plugin:
CRW
Nope, never saw such plugin. For some camera vendors you have to use the SDK to read it.
http://amin-ahmadi.com/2016/06/09/how-to-handle-canon-eos-raw-images-in-qt-c/Alternatively, you can use a lib
http://www.libraw.org/
and use to convert to format that you can
load or embed into Qt app so it can load native. -
@samdol
Hi do you mean a raw image format like in cameras or just raw as in no header etc?
http://stackoverflow.com/questions/18637721/how-to-display-a-raw-image-file-in-a-qt-gui -
From the link, it seems we need to know
width, height ,QImage::Format about the raw image file before read it.
Could we know those information before read it?@samdol said in Image plugin:
Could we know those information before read it?
Not really. That is why raw means many things.
One can guess about it if knowing color format/depth and the filesize but
ultimately it could be anything.For Cameras the raw format means uncompressed. Each vendor might save raw differently and hence
its not easy to "just" read raw files. -
@samdol said in Image plugin:
Could we know those information before read it?
Not really. That is why raw means many things.
One can guess about it if knowing color format/depth and the filesize but
ultimately it could be anything.For Cameras the raw format means uncompressed. Each vendor might save raw differently and hence
its not easy to "just" read raw files. -
@mrjj
when tried the code in the link with some raw files (NiKON NEF, ..) I could only see unrecognizable dots on the screen. Is it because I did not put the right w, h and format?