{"id":17218526,"url":"https://github.com/novomesk/qt-avif-image-plugin","last_synced_at":"2025-04-07T09:18:27.026Z","repository":{"id":88847540,"uuid":"253812175","full_name":"novomesk/qt-avif-image-plugin","owner":"novomesk","description":"Qt plug-in to allow Qt and KDE based applications to read/write AVIF images.","archived":false,"fork":false,"pushed_at":"2025-03-26T15:29:59.000Z","size":47257,"stargazers_count":97,"open_issues_count":2,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-31T06:07:08.440Z","etag":null,"topics":["avif","imageformats","kde","qt"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novomesk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-07T14:08:17.000Z","updated_at":"2025-03-26T15:30:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fb916d7-c066-4827-9f7f-a759940de5f1","html_url":"https://github.com/novomesk/qt-avif-image-plugin","commit_stats":{"total_commits":192,"total_committers":2,"mean_commits":96.0,"dds":0.0625,"last_synced_commit":"2f0bd6b500e97f71afa61264b744e850b305ef79"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novomesk%2Fqt-avif-image-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novomesk%2Fqt-avif-image-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novomesk%2Fqt-avif-image-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novomesk%2Fqt-avif-image-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novomesk","download_url":"https://codeload.github.com/novomesk/qt-avif-image-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247622985,"owners_count":20968575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avif","imageformats","kde","qt"],"created_at":"2024-10-15T03:47:12.294Z","updated_at":"2025-04-07T09:18:27.005Z","avatar_url":"https://github.com/novomesk.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qt-avif-image-plugin\nQt plug-in to allow Qt and KDE based applications to read/write AVIF images.\n\nManual **How to install AVIF support in KDE**\n\n## What is AVIF?\n\n**AV**1 **I**mage File **F**ormat (AVIF) is an advanced image format [specified](https://aomediacodec.github.io/av1-avif/) by [Alliance for Open Media](https://aomedia.org/).\n\nAVIF is technically a picture compressed with AV1 video codec wrapped in ISO Base Media File Format.  \nAV1 compression provides significantly better efficiency than traditional JPEG. Beside 8bit per channel AVIF allows 10bit and 12bit depth, transparency, color profiles, metadata, animation, compression quality ranging from visually lossless to highly compressed lossy while maintaining decent visual quality at low bitrates.\n\n## 1) Download\n\nDownload [Latest Release](https://github.com/novomesk/qt-avif-image-plugin/releases/latest) and extract the content of the zip file:\n\n`unzip qt-avif-image-plugin-0.9.2.zip`\n\n**Recommended**: read [README.txt](README.txt)\n\n## 2) Adding MIME type\n\nIf you have _shared-mime-info 2.0_ or newer installed, you may skip this step. AVIF MIME type are installed already.\n\nIn order to install mime type **image/avif** in your system, copy (as root) _qt-avif-image-plugin.xml_ file to _/usr/share/mime/packages/_ folder and run:\n\n`update-mime-database /usr/share/mime`\n\n![qt-avif-image-plugin.xml](img/qt-avif-image-plugin_xml.png)\n\n## 3) Compile Qt Image Plugin\n\nQt Image Plugin allows Qt and KDE applications to open/save pictures in AVIF format. The plug-in uses [libavif](https://github.com/AOMediaCodec/libavif/) internally.  \nYou need Qt5 development packages (for example qtbase5-dev), qmake, you may also need cmake and yasm.\n\nIf your system has libavif installed (version 0.8.2 or newer, check for the presence of _/usr/include/avif/avif.h_), run:\n\n`./build_libqavif_dynamic.sh` \n![](img/build_libqavif_dynamic.png)\n\nIf you don't have libavif installed, run:\n\n`./build_libqavif_static.sh` \n![](img/build_libqavif_static.png)\n\n### Alternative way of building using cmake\n\nThis alternative requires *extra-cmake-modules*\n\n```\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n### Windows builds\n\n#### MSYS2 platform\n\nUse same steps like building under Linux.\n\n#### Microsoft Visual Studio + Qt Creator\n\nYou need to prepare **libaom.a** and **libavif.a** before opening qt-avif-image-plugin_local-libavif.pro in Qt Creator.\n\n##### Prepare libaom.a\n\nCreate folder `ext\\libavif\\ext\\aom\\build.libavif\\` and change to this folder.\n\nRun `C:\\Qt\\Tools\\CMake_64\\bin\\cmake.exe -G \"Visual Studio 16 2019\" -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCONFIG_PIC=1 ..`\n\ncmake should create project files for Visual Studio. Now you can open *AOM.sln*\n\nGo to *Configuration Manager...* and change (if necessary) *Active solution configuration* from Debug to Release.\n\nBuild Solution\n\nCopy and rename `ext\\libavif\\ext\\aom\\build.libavif\\Release\\aom.lib` to `ext\\libavif\\ext\\aom\\build.libavif\\libaom.a`\n\n##### Prepare libavif.a\n\nCreate folder `ext\\libavif\\build\\` and change to this folder.\n\nRun `C:\\Qt\\Tools\\CMake_64\\bin\\cmake.exe -G \"Visual Studio 16 2019\" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_AOM=ON ..`\n\ncmake should create project files for Visual Studio. Now you can open *libavif.sln*\n\nGo to *Configuration Manager...* and change (if necessary) *Active solution configuration* from Debug to Release.\n\nBuild Solution\n\nCopy and rename `ext\\libavif\\build\\Release\\avif.lib` to `ext\\libavif\\build\\libavif.a`\n\n##### Open qt-avif-image-plugin_local-libavif.pro in Qt Creator\n\nBuild Project qt-avif-image-plugin_local-libavif\n![qt-avif-image-plugin in Qt Creator](img/qt_creator.png)\n\nPlug-in is ready in `plugins\\imageformats\\qavif.dll`\n\n## 4) Install libqavif.so\n\nCopy **libqavif.so** to a folder where _qt5-image-formats-plugins_ and/or _kimageformats_ are installed. It could be one of these locations:\n\n*   /usr/lib/qt5/plugins/imageformats\n*   /usr/lib/qt/plugins/imageformats/\n*   /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats\n\n![installed libqavif.so in /plugins/imageformats](img/imageformats.png)\n\n## 5) Associate *.avif with applications\n\nQt based applications should be able to open [AVIF](https://github.com/AOMediaCodec/av1-avif/tree/master/testFiles) images now.  \nExample how to associate AVIF file type with _gwenview_:  \n![](img/association.png)\n\n## 6) Enable AVIF thumbnails in dolphin file manager\n\nCopy _avif.desktop_, _avifs.desktop_ to:  \n*/usr/share/kservices5/qimageioplugins/*\n\nUpdate _imagethumbnail.desktop_ (in /usr/share/kservices5/ ):  \nAdd `;image/avif` to the `MimeType=` list:\n![](img/imagethumbnail.png)\n\nAVIF thumbnails in dolphin:  \n![](img/app_dolphin.png)\n\n## 7) Enjoy using AVIF in applications\n\n### gwenview\n\n![AVIF picture in gwenview](img/app_gwenview.png)\n\n### KolourPaint\n\n![AVIF picture in kolourpaint](img/app_kolourpaint.png)\n\n### nomacs\n\n![AVIF images in nomacs](img/app_nomacs.png)\n\n### KPhotoAlbum\n\n![AVIF images in kphotoalbum](img/app_kphotoalbum.png)\n\n### digiKam\n\n![AVIF images in digikam](img/app_digikam.png)\n\n### qView\n\n![AVIF image in qView](img/app_qview.png)\n\n### LXImage-Qt\n\n![AVIF image in LXImage-Qt](img/app_lximage-qt.png)\n\n### qimgv\n\n![AVIF images in qimgv](img/app_qimgv.png)\n\n### PhotoQt\n\n![AVIF images in photoqt](img/app_photoqt2.png)\n\n### Kanryu QuickViewer\n\n![AVIF image in quickviewer](img/app_kanryu_quickviewer.png)\n\n### VookiImageViewer\n\n![AVIF image in vooki-image-viewer](img/app_vooki-image-viewer.png)\n\n### YACReader\n\n![AVIF image in YACReader - Yet Another Comic Reader](img/app_yacreader.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovomesk%2Fqt-avif-image-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovomesk%2Fqt-avif-image-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovomesk%2Fqt-avif-image-plugin/lists"}