1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-21 21:40:59 +00:00
serenity/Libraries/LibGfx
Matthew Olsson 4e093a7c23 LibGfx: Add BMP loader
Adds an *almost fully featured BMP loader to process .bmp files.

Features:
- All header formats are supported
- Full RLE4/8/24 support
- Color scaling (e.g. distributing a 5-bit color throughout the 8-bit
color spectrum, so 5-bit white is still 0xffffff)
- Full BITMASK/ALPHABITMASK support

*Not included:
- 1D Huffman compression. Good luck actually finding a bmp in the wild
that uses this
- Use of any field in the V4/V5 header. Color spaces? Endpoints? No
thanks :)

This loader was tested with the images at
https://entropymine.com/jason/bmpsuite/bmpsuite/html/bmpsuite.html. This
loader correctly displays 81 out of the 90 total images (for reference,
firefox displays 64 correctly). Note that not rendering the images at
the bottom is counted as displaying correctly.
2020-06-21 10:08:25 +02:00
..
AffineTransform.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
AffineTransform.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Bitmap.cpp LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
Bitmap.h LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
BMPLoader.cpp LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
BMPLoader.h LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
CharacterBitmap.cpp LibGfx: Rename from LibDraw :^) 2020-02-06 12:04:00 +01:00
CharacterBitmap.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
CMakeLists.txt LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
Color.cpp LibGfx: Add Color::Transparent as a named color 2020-06-13 20:03:19 +02:00
Color.h LibGfx: Add Color::Transparent as a named color 2020-06-13 20:03:19 +02:00
DisjointRectSet.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
DisjointRectSet.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Emoji.cpp LibGfx: Rename GraphicsBitmap.{cpp,h} => Bitmap.{cpp,h} 2020-02-06 12:07:05 +01:00
Emoji.h LibGfx: Rename from LibDraw :^) 2020-02-06 12:04:00 +01:00
FloatPoint.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
FloatRect.cpp LibGfx: Add missing FloatRect function implementations 2020-05-05 18:53:34 +02:00
FloatRect.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
FloatSize.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Font.cpp LibGfx: Font, extend fonts to 384 character to support LatinExtendedA 2020-05-21 01:19:42 +02:00
Font.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Forward.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
GIFLoader.cpp LibGfx: Fix color alfa for transparent color in GIFLoader 2020-06-18 16:35:57 +02:00
GIFLoader.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
ImageDecoder.cpp LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
ImageDecoder.h LibGfx: Don't keep an unused GIF decoder plugin in failed ImageDecoders 2020-06-13 15:29:29 +02:00
Matrix4x4.h LibGfx: Add Vector3 and Matrix4x4 classes 2020-04-18 12:28:54 +02:00
Orientation.h LibGfx: Rename from LibDraw :^) 2020-02-06 12:04:00 +01:00
Painter.cpp LibGfx: Add BMP loader 2020-06-21 10:08:25 +02:00
Painter.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Palette.cpp Userspace: Add missing #includes now that AK/StdLibExtras.h is smaller 2020-03-08 13:06:51 +01:00
Palette.h LibGfx: Return correct color for palette.hover_highlight() 2020-06-10 21:50:33 +02:00
Path.cpp LibGfx: Add Path::close_all_subpaths() 2020-05-09 23:25:39 +02:00
Path.h LibGfx: Add Path::close_all_subpaths() 2020-05-09 23:25:39 +02:00
PNGLoader.cpp LibGfx: Implement support for decoding interlaced PNGs 2020-06-13 19:47:43 +02:00
PNGLoader.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Point.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Point.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Rect.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Rect.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
ShareableBitmap.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
ShareableBitmap.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Size.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Size.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
StylePainter.cpp LibGfx: Return paint_button() earlier and replace overdrawn rect 2020-06-11 16:56:17 +02:00
StylePainter.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
SystemTheme.cpp LibGUI: Use themes for syntax highlighting 2020-03-16 13:39:34 +01:00
SystemTheme.h LibGUI: Use themes for syntax highlighting 2020-03-16 13:39:34 +01:00
TextAlignment.h LibGfx: Rename from LibDraw :^) 2020-02-06 12:04:00 +01:00
TextElision.h LibGfx: Rename from LibDraw :^) 2020-02-06 12:04:00 +01:00
Triangle.cpp LibGfx: Move a bunch of LogStream::operator<< to cpp files 2020-02-15 00:58:54 +01:00
Triangle.h LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
Vector3.h LibGfx: Add Vector3 and Matrix4x4 classes 2020-04-18 12:28:54 +02:00