ladybird/Userland/Libraries/LibGfx/ImageFormats
Nicolas Ramz fda5590313 LibGfx/ILBM: Add an IFF-ILBM decoder :)
IFF was a generic container fileformat that was popular on the Amiga
since it was the only file format supported by Deluxe Paint.

ILBM is an image format popular in the late eighties/nineties
that uses the IFF container.

This is a very first version of the decoder that only supports
(byterun) compressed files with bpp <= 8.

Only the minimal chunks are decoded: CMAP, BODY, BMHD.

I am planning to add support for the following variants:

- EHB (32 colours + lighter 32 colours)
- HAM6 / HAM8 (special mode that allowed to display the whole Amiga
4096 colours / 262 144 colours palette)
- TrueColor (24bit)

Things that could be fun to do:

- Still images could be animated using color cycle information
2023-08-15 18:36:11 +01:00
..
ISOBMFF LibGfx: Add initial ISO BMFF parsing and a utility to print file info 2023-07-27 12:02:37 +01:00
BMPLoader.cpp LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
BMPLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
BMPWriter.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
BMPWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
BooleanDecoder.cpp LibGfx/LibVideo: Check for overreads only at end of a VPX range decode 2023-06-10 07:17:12 +02:00
BooleanDecoder.h LibGfx/LibVideo: Check for overreads only at end of a VPX range decode 2023-06-10 07:17:12 +02:00
DDSLoader.cpp LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
DDSLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
ExifOrientedBitmap.h LibGfx: Add ExifOrientedBitmap 2023-08-09 13:18:40 +01:00
GIFLoader.cpp LibGfx/GIF: Decode the header in create() 2023-07-15 09:44:30 +02:00
GIFLoader.h LibGfx/GIF: Only use a FixedMemoryStream 2023-07-15 09:44:30 +02:00
ICOLoader.cpp LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
ICOLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
ILBMLoader.cpp LibGfx/ILBM: Add an IFF-ILBM decoder :) 2023-08-15 18:36:11 +01:00
ILBMLoader.h LibGfx/ILBM: Add an IFF-ILBM decoder :) 2023-08-15 18:36:11 +01:00
ImageDecoder.cpp LibGfx/ILBM: Add an IFF-ILBM decoder :) 2023-08-15 18:36:11 +01:00
ImageDecoder.h LibGfx/WebP: Move FourCC into ImageDecoder.h 2023-08-15 18:36:11 +01:00
JPEGLoader.cpp LibGfx/JPEG: Don't fail to decode images with non-compliant ICC profile 2023-07-30 05:10:08 +02:00
JPEGLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
JPEGShared.h LibGfx/JPEG: Put generic definitions in a shared header 2023-06-22 21:13:04 +02:00
JPEGWriter.cpp Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
JPEGWriter.h LibGfx/JPEG: Take the quality as an argument instead of hardcoding it 2023-07-04 00:01:06 +02:00
JPEGWriterTables.h LibGfx/JPEG: Add a JPEG encoder :^) 2023-06-22 21:13:04 +02:00
JPEGXLLoader.cpp LibGfx/JPEGXL: Add support for cropped images 2023-08-12 08:46:10 +02:00
JPEGXLLoader.h LibGfx/JPEGXL: Add a JPEG-XL decoder :^) 2023-07-21 10:47:34 -06:00
PBMLoader.cpp LibGfx/PortableFormat: Simplify the State enum 2023-07-11 14:16:33 +01:00
PBMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
PGMLoader.cpp LibGfx/PortableFormat: Simplify the State enum 2023-07-11 14:16:33 +01:00
PGMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
PNGLoader.cpp LibGfx/PNG: Remove the useless HeaderDecoded state 2023-07-17 06:49:03 +01:00
PNGLoader.h LibGfx/PNG: Decode the header in create() and remove initialize() 2023-07-17 06:49:03 +01:00
PNGShared.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PNGWriter.cpp Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
PNGWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PortableFormatWriter.cpp LibGfx/PortableFormat: Use FixedArray::unchecked_at 2023-05-09 11:18:46 +02:00
PortableFormatWriter.h LibGfx/PortableFormat+image: Make encode take a Stream 2023-05-09 11:18:46 +02:00
PortableImageLoaderCommon.h LibGfx/PortableFormat: Read the header during initialization 2023-07-11 14:16:33 +01:00
PortableImageMapLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
PPMLoader.cpp LibGfx/PortableFormat: Simplify the State enum 2023-07-11 14:16:33 +01:00
PPMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
QOILoader.cpp LibGfx/QOI: Decode the header in create() and remove initialize() 2023-07-14 06:17:12 +02:00
QOILoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
QOIWriter.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
QOIWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
TGALoader.cpp AK+Libraries: Remove FixedMemoryStream::[readonly_]bytes() 2023-07-30 19:32:52 +01:00
TGALoader.h LibGfx/TGA: Simplify the code by converting it to use AK::Stream 2023-07-27 14:40:00 +01:00
TinyVGLoader.cpp LibGfx/TinyVG: Decode the header in create() and remove initialize() 2023-07-16 20:39:51 +02:00
TinyVGLoader.h LibGfx: Provide a default implementation for animation-related methods 2023-07-18 14:34:35 +01:00
WebPLoader.cpp LibGfx/WebP: Move FourCC into ImageDecoder.h 2023-08-15 18:36:11 +01:00
WebPLoader.h LibGfx/WebP: Decode the first chunk in create() 2023-07-15 09:34:07 +02:00
WebPLoaderLossless.cpp WebP/Lossless: Set alpha to 0xff if is_alpha_used is false in header 2023-06-18 18:47:47 +02:00
WebPLoaderLossless.h LibGfx/WebP: Minor cosmetical changes in WebPLoaderLossless.h 2023-05-09 06:35:56 +02:00
WebPLoaderLossy.cpp LibGfx/LibVideo: Check for overreads only at end of a VPX range decode 2023-06-10 07:17:12 +02:00
WebPLoaderLossy.h WebP/Lossy: Implement macroblock coefficient decoding 2023-05-29 10:41:53 -06:00
WebPLoaderLossyTables.h WebP/Lossy: Add const annotations to functions in Tables.h 2023-06-01 16:23:46 +02:00