1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 16:07:35 +00:00
serenity/Userland/Libraries/LibGfx
Nico Weber df79a2720b WebP/Lossy+Alpha: Implement filtering_method for ALPH chunk
The spec says "Decoders are not required to use this information in any
specified way" about this field, but that's probably a typo and belongs
in the previous section. At least, images in the wild look wrong
without this, for example
https://fjord.dropboxstatic.com/warp/conversion/dropbox/warp/en-us/dropbox/Integrations_4@2x.png?id=ce8269af-ef1a-460a-8199-65af3dd978a3&output_type=webp

Implementation-wise, this now copies both uncompressed and compressed
data to yet another buffer for processing the alpha, then does
filtering on that buffer, and then copies the filtered alpha data
into the final image. (The RGB data comes from a lossy webp.)
This is a bit wasteful and we could probably manage without that
local copy, but that'd make the code more convoluted, so this is
good enough for now, at least until we've added tests for this case.

No test, because I haven't yet found out how to create images in this
format.
2023-06-07 08:08:52 +02:00
..
Filters LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
Font Everywhere: Only use local includes where appropriate 2023-06-06 23:19:50 +02:00
ICC ICC: Verify curve types have valid types 2023-05-04 16:11:07 +02:00
ImageFormats WebP/Lossy+Alpha: Implement filtering_method for ALPH chunk 2023-06-07 08:08:52 +02:00
AffineTransform.cpp LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
AffineTransform.h LibGfx: Add AffineTransform::rotation() 2023-04-27 07:24:53 +02:00
AntiAliasingPainter.cpp LibGfx: Make it possible to stroke a path with a paint style 2023-06-07 06:29:46 +02:00
AntiAliasingPainter.h LibGfx: Make it possible to stroke a path with a paint style 2023-06-07 06:29:46 +02:00
Bitmap.cpp LibGfx: Prevent out of bounds access when scaling small Bitmaps 2023-05-24 08:12:14 +02:00
Bitmap.h LibGfx: Add Bitmap::begin() / Bitmap::end() 2023-04-05 13:24:00 +02:00
BitmapMixer.cpp LibGfx: Add BitmapMixer 2022-01-04 21:41:14 +02:00
BitmapMixer.h LibGfx: Add BitmapMixer 2022-01-04 21:41:14 +02:00
CharacterBitmap.h Libraries: Make CharacterBitmap instances at compile-time 2022-03-04 17:41:08 +01:00
CIELAB.h LibGfx: Move CIELAB to its own file 2023-04-30 05:57:20 +02:00
ClassicStylePainter.cpp LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
ClassicStylePainter.h LibGfx+Userland: Merge FrameShape and FrameShadow into FrameStyle 2023-04-30 05:49:46 +02:00
ClassicWindowTheme.cpp LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
ClassicWindowTheme.h LibGfx: Make ClassicWindowTheme menubar heights respect the font size 2023-01-03 15:25:02 +01:00
CMakeLists.txt LibGfx: Implement new antialiased filled path rasterizer 2023-06-01 06:25:00 +02:00
Color.cpp LibGfx: Add Color::from_named_css_color_string 2023-05-28 13:24:37 +02:00
Color.h LibGfx: Remove SSE version of Color::blend() 2023-06-01 15:13:47 +02:00
CursorParams.cpp Meta+Userland: Pass Gfx::IntPoint by value 2022-12-07 11:48:27 +01:00
CursorParams.h Meta+Userland: Pass Gfx::IntPoint by value 2022-12-07 11:48:27 +01:00
DeltaE.cpp LibGfx: Add DeltaE() function 2023-04-30 05:57:20 +02:00
DeltaE.h LibGfx: Add DeltaE() function 2023-04-30 05:57:20 +02:00
DisjointRectSet.h LibGfx+Everywhere: Make DisjointRectSet work for non-int Rects 2022-10-27 13:06:33 +02:00
EdgeFlagPathRasterizer.cpp LibGfx: Fix adding active edges in filled path rasterizer 2023-06-04 05:40:39 +02:00
EdgeFlagPathRasterizer.h LibGfx: Implement new antialiased filled path rasterizer 2023-06-01 06:25:00 +02:00
Forward.h LibGfx: Add paint styles and allow gradients to be used as them 2023-01-22 18:15:52 +01:00
Gamma.h LibGfx: Remove a workaround for clang before 11 2022-10-04 23:35:07 +01:00
GradientPainting.cpp Everywhere: Run spellcheck on all documentation 2023-05-07 01:05:09 +02:00
Gradients.h LibWeb+LibGfx: Migrate (most of) the CSS gradient painting to LibGfx 2023-01-10 10:25:58 +01:00
GrayscaleBitmap.h LibGfx: Add a simple GrayscaleBitmap class 2023-03-23 08:27:51 +00:00
Line.h LibGfx: Add small convenience functions for Lines and AA Painter 2023-01-26 10:37:26 +00:00
Matrix.h LibGfx: Fix -Wdouble-promotion for float matrices 2023-05-02 17:15:48 +01:00
Matrix3x3.h LibGfx: Add Matrix3x3 2021-12-30 14:24:29 +01:00
Matrix4x4.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Orientation.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Painter.cpp LibGfx: Optimize Painter::blit_filtered() 2023-06-01 12:23:24 +02:00
Painter.h LibGfx: Implement new antialiased filled path rasterizer 2023-06-01 06:25:00 +02:00
PaintStyle.h LibGfx: Make PaintStyle::paint() a public function 2023-06-01 06:25:00 +02:00
Palette.cpp LibGfx: Make the Palette constructor take NNRP<PaletteImpl> 2023-03-15 23:29:00 +01:00
Palette.h LibGfx: Make the Palette constructor take NNRP<PaletteImpl> 2023-03-15 23:29:00 +01:00
Path.cpp LibGfx: Add Path::stroke_to_fill(thickness) 2023-06-06 09:17:06 +02:00
Path.h LibGfx: Add Path::stroke_to_fill(thickness) 2023-06-06 09:17:06 +02:00
Point.cpp LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
Point.h LibGfx: Add Point::to_floored<T>() 2023-04-09 18:42:45 +02:00
Quad.h LibGfx: Add Gfx::Quad<T> to represent arbitrary quadrilaterals 2022-04-07 17:06:02 +02:00
Rect.cpp LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
Rect.h LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
ShareableBitmap.cpp LibGfx: Remove try_ prefix from bitmap creation functions 2023-01-26 20:24:37 +00:00
ShareableBitmap.h LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
Size.cpp LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
Size.h LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
StandardCursor.h Base+WindowServer+LibGfx: Add new DragCopy Cursor 2022-08-31 17:29:44 +01:00
StylePainter.cpp LibGfx+Userland: Merge FrameShape and FrameShadow into FrameStyle 2023-04-30 05:49:46 +02:00
StylePainter.h LibGfx+Userland: Merge FrameShape and FrameShadow into FrameStyle 2023-04-30 05:49:46 +02:00
SystemTheme.cpp Everywhere: Support overriding the system color scheme 2023-03-10 22:03:49 +01:00
SystemTheme.h LibGfx: Return StringView for SystemTheme Roles 2023-04-30 05:48:14 +02:00
TextAlignment.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TextAttributes.h LibGfx+Userland: Make TextAttributes::underline_style optional 2023-03-15 14:55:49 +01:00
TextDirection.cpp Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
TextDirection.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TextElision.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TextLayout.cpp LibGfx: Consider multi-code point glyphs when computing text width 2023-02-22 10:14:36 +01:00
TextLayout.h LibGfx: Make text painting better at aligning vector fonts vertically 2023-01-06 12:02:21 +01:00
TextWrapping.h Userland: Move text wrapping/elision into the new TextLayout :^) 2021-07-26 21:14:39 +04:30
Triangle.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Triangle.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector2.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector3.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector4.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
VectorN.h LibGfx: Remove unnecessary AK:: prefix in VectorN.h 2023-03-06 13:05:43 +00:00
WindowTheme.cpp Libraries: Use default constructors/destructors in LibGfx 2022-03-17 17:23:49 +00:00
WindowTheme.h LibGfx+LibGUI+WindowServer+Apps+Demos: Replace ToolWindows 2022-08-25 13:28:50 +02:00