mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 09:30:24 +00:00
LibGfx/JPEGXL: Honor the orientation parameter
Since the introduction of the JPEG XL decoder, we always read the `orientation` field in the `ImageMetadata` bundle. This patch allows us to render the bitmap accordingly to this transformation.
This commit is contained in:
parent
3c1be9879f
commit
a35f4bf14e
Notes:
sideshowbarker
2024-07-17 03:05:16 +09:00
Author: https://github.com/LucasChollet Commit: https://github.com/SerenityOS/serenity/commit/a35f4bf14e Pull-request: https://github.com/SerenityOS/serenity/pull/20294 Reviewed-by: https://github.com/AtkinsSJ ✅ Reviewed-by: https://github.com/nico
1 changed files with 5 additions and 3 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <AK/FixedArray.h>
|
||||
#include <AK/String.h>
|
||||
#include <LibCompress/Brotli.h>
|
||||
#include <LibGfx/ImageFormats/ExifOrientedBitmap.h>
|
||||
#include <LibGfx/ImageFormats/JPEGXLLoader.h>
|
||||
|
||||
namespace Gfx {
|
||||
|
@ -1582,7 +1583,8 @@ public:
|
|||
auto const width = m_channels[0].width();
|
||||
auto const height = m_channels[0].height();
|
||||
|
||||
auto bitmap = TRY(Bitmap::create(BitmapFormat::BGRA8888, { width, height }));
|
||||
auto const orientation = static_cast<ExifOrientedBitmap::Orientation>(metadata.orientation);
|
||||
auto oriented_bitmap = TRY(ExifOrientedBitmap::create(BitmapFormat::BGRA8888, { width, height }, orientation));
|
||||
|
||||
auto const alpha_channel = metadata.alpha_channel();
|
||||
|
||||
|
@ -1613,11 +1615,11 @@ public:
|
|||
to_u8(m_channels[*alpha_channel].get(x, y)),
|
||||
};
|
||||
}();
|
||||
bitmap->set_pixel(x, y, color);
|
||||
oriented_bitmap.set_pixel(x, y, color);
|
||||
}
|
||||
}
|
||||
|
||||
return bitmap;
|
||||
return oriented_bitmap.bitmap();
|
||||
}
|
||||
|
||||
Vector<Channel>& channels()
|
||||
|
|
Loading…
Reference in a new issue