GithubHelp home page GithubHelp logo

add-uos / qt-avif-image-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from novomesk/qt-avif-image-plugin

0.0 0.0 0.0 39.91 MB

Qt plug-in to allow Qt and KDE based applications to read/write AVIF images.

License: BSD 2-Clause "Simplified" License

Shell 0.39% JavaScript 0.01% C++ 17.81% Python 0.69% Perl 0.27% C 59.36% Java 0.04% Go 0.01% CoffeeScript 0.02% Assembly 19.97% Makefile 0.09% HTML 0.05% QMake 0.01% CMake 0.94% Batchfile 0.02% M4 0.10% Dockerfile 0.01% Roff 0.09% Meson 0.13% Starlark 0.02%

qt-avif-image-plugin's Introduction

qt-avif-image-plugin

Qt plug-in to allow Qt and KDE based applications to read/write AVIF images.

Manual How to install AVIF support in KDE

What is AVIF?

AV1 Image File Format (AVIF) is an advanced image format specified by Alliance for Open Media.

AVIF is technically a picture compressed with AV1 video codec wrapped in ISO Base Media File Format.
AV1 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.

1) Download

Download Latest Release and extract the content of the zip file:

unzip qt-avif-image-plugin-0.8.3.zip

Recommended: read README.txt

2) Adding MIME type

If you have shared-mime-info 2.0 or newer installed, you may skip this step. AVIF MIME type are installed already.

In 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:

update-mime-database /usr/share/mime

qt-avif-image-plugin.xml

3) Compile Qt Image Plugin

Qt Image Plugin allows Qt and KDE applications to open/save pictures in AVIF format. The plug-in uses libavif internally.
You need Qt5 development packages (for example qtbase5-dev), qmake, you may also need cmake and yasm.

If your system has libavif installed (version 0.8.2 or newer, check for the presence of /usr/include/avif/avif.h), run:

./build_libqavif_dynamic.sh

If you don't have libavif installed, run:

./build_libqavif_static.sh

Alternative way of building using cmake

This alternative requires extra-cmake-modules

mkdir build
cd build
cmake ..
make

Windows builds

MSYS2 platform

Use same steps like building under Linux.

Microsoft Visual Studio + Qt Creator

You need to prepare libaom.a and libavif.a before opening qt-avif-image-plugin_local-libavif.pro in Qt Creator.

Prepare libaom.a

Create folder ext\libavif\ext\aom\build.libavif\ and change to this folder.

Run 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 ..

cmake should create project files for Visual Studio. Now you can open AOM.sln

Go to Configuration Manager... and change (if necessary) Active solution configuration from Debug to Release.

Build Solution

Copy and rename ext\libavif\ext\aom\build.libavif\Release\aom.lib to ext\libavif\ext\aom\build.libavif\libaom.a

Prepare libavif.a

Create folder ext\libavif\build\ and change to this folder.

Run 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 ..

cmake should create project files for Visual Studio. Now you can open libavif.sln

Go to Configuration Manager... and change (if necessary) Active solution configuration from Debug to Release.

Build Solution

Copy and rename ext\libavif\build\Release\avif.lib to ext\libavif\build\libavif.a

Open qt-avif-image-plugin_local-libavif.pro in Qt Creator

Build Project qt-avif-image-plugin_local-libavif qt-avif-image-plugin in Qt Creator

Plug-in is ready in plugins\imageformats\qavif.dll

4) Install libqavif.so

Copy libqavif.so to a folder where qt5-image-formats-plugins and/or kimageformats are installed. It could be one of these locations:

  • /usr/lib/qt5/plugins/imageformats
  • /usr/lib/qt/plugins/imageformats/
  • /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats

installed libqavif.so in /plugins/imageformats

5) Associate *.avif with applications

Qt based applications should be able to open AVIF images now.
Example how to associate AVIF file type with gwenview:

6) Enable AVIF thumbnails in dolphin file manager

Copy avif.desktop, avifs.desktop to:
/usr/share/kservices5/qimageioplugins/

Update imagethumbnail.desktop (in /usr/share/kservices5/ ):
Add ;image/avif to the MimeType= list:

AVIF thumbnails in dolphin:

7) Enjoy using AVIF in applications

gwenview

AVIF picture in gwenview

KolourPaint

AVIF picture in kolourpaint

nomacs

AVIF images in nomacs

KPhotoAlbum

AVIF images in kphotoalbum

digiKam

AVIF images in digikam

qView

AVIF image in qView

LXImage-Qt

AVIF image in LXImage-Qt

qimgv

AVIF images in qimgv

PhotoQt

AVIF images in photoqt

Kanryu QuickViewer

AVIF image in quickviewer

VookiImageViewer

AVIF image in vooki-image-viewer

YACReader

AVIF image in YACReader - Yet Another Comic Reader

qt-avif-image-plugin's People

Contributors

novomesk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.