kanryu / quickviewer

A image/comic viewer application for Windows, Mac and Linux, it can show images very fast
https://kanryu.github.io/quickviewer/
GNU General Public License v3.0
536 stars 63 forks source link

avif image file support #128

Open gitoss opened 4 years ago

gitoss commented 4 years ago

The avif is the still image format of av1, basically a modern webp (which is based on vp8). There is native support in recent Windows versions, but not in 1809 Enterprise builds or other older LTSC/LTSB versions.

https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF)

=> Since av1 seems to be the thing and even M$ supports it, native support in qucikviewer with libavif would be very nice.

Specs: https://aomediacodec.github.io/av1-avif/

Lib: https://github.com/AOMediaCodec/libavif

Samples: http://download.opencontent.netflix.com/?prefix=AV1/Chimera/AVIF/ https://github.com/AOMediaCodec/av1-avif/tree/master/testFiles/Microsoft

gitoss commented 4 years ago

libheif supportes avif, too, next to the original h265/heic. It might add other codecs inside the heif container like h266/vvc: https://github.com/strukturag/libheif

Since Chrome, Firefox and Android now support .avif, it seems to be here to stay.

kanryu commented 4 years ago

It seems I didn't notice your last issue. I'm sorry I didn't write a reply. If you have the skills to build programs, you can build these libraries as Qt's imageformats plugin. If you add the plugin to QuickViewer, QuickViewer will be able to display the image. If other Qt apps support it, it's likely they have prebuilt plugins. If you can find it, just copy it.

novomesk commented 4 years ago

quickviewer_qt-avif-image-plugin I compiled qavif.dll against old Qt 5.12 and added it to QuickViewer-portable-1.1.8-x64\imageformats folder. @kanryu If you rebuild your app against Qt 5.14.2, then you can simply download qavif.dll from https://github.com/novomesk/qt-avif-image-plugin/releases

kanryu commented 4 years ago

@gitoss Thank you for contacting people on other projects. Thanks to you I knew I had an implementation of avif.

@novomesk Thanks for providing the Qt implementation of avif. Your implementation will be bundled with the next release of QuickViewer. We thank you for your cooperation.

gitoss commented 4 years ago

@kanryu If you rebuild your app against Qt 5.14.2, then you can simply download qavif.dll from https://github.com/novomesk/qt-avif-image-plugin/releases

Dropping novomesk' dll into the current 1.1.8 x64 doesn't work for me - the .avif is neither opened nor listed. I hope kanryu will release a pre-packaged 1.1.9 update soon.

novomesk commented 4 years ago

@gitoss The DLL was built using Qt 5.14 but the quick viewer using Qt 5.12. This combination cannot work. When you build my DLL with old Qt 5.12 and it will work together.