qoi: write support

As a base I used the reference implementation found on the official site at https://qoiformat.org/ (MIT license).
I added a class to convert scan lines in scanlineconverter.cpp. The class takes advantage of the QImage conversion and contrary to what one might expect, with large images it improves performance (compared to converting the whole image) 😄 

In progressive mode, for each line, the following conversions (only if needed) are made before saving:
1. If the icc profile is set, the line is converted to sRGB or sRGB Linear.
2. The line is scaled to 8 bits with RGBA order.
This commit is contained in:
Mirco Miranda
2023-08-28 22:25:10 +00:00
committed by Daniel Novomeský
parent 4bd9d5baec
commit 8dc685df26
9 changed files with 337 additions and 16 deletions

View File

@ -22,7 +22,6 @@ The following image formats have read-only support:
- Photoshop documents (psd, psb, pdd, psdt)
- Radiance HDR (hdr)
- Sun Raster (ras)
- Quite OK Image format (qoi)
The following image formats have read and write support:
@ -31,6 +30,7 @@ The following image formats have read and write support:
- High Efficiency Image File Format (heif). Can be enabled with the KIMAGEFORMATS_HEIF build option.
- JPEG XL (jxl)
- Personal Computer Exchange (pcx)
- Quite OK Image format (qoi)
- SGI images (rgb, rgba, sgi, bw)
- Softimage PIC (pic)
- Targa (tga): supports more formats than Qt's version