From b5e593d0e7337efa0810063aec43256913734cc0 Mon Sep 17 00:00:00 2001 From: MacDue Date: Sun, 7 May 2023 16:01:58 +0100 Subject: [PATCH] Ladybird: Don't ask Qt to decode any images for us We should only rely on LibGfx to decode images for us, if LibGfx can't decode an image that should be motivation to improve LibGfx, not hidden by Qt picking up the slack :^) --- Ladybird/ImageCodecPluginLadybird.cpp | 39 +-------------------------- 1 file changed, 1 insertion(+), 38 deletions(-) diff --git a/Ladybird/ImageCodecPluginLadybird.cpp b/Ladybird/ImageCodecPluginLadybird.cpp index 054a343391..134f3c145a 100644 --- a/Ladybird/ImageCodecPluginLadybird.cpp +++ b/Ladybird/ImageCodecPluginLadybird.cpp @@ -8,35 +8,12 @@ #include "ImageCodecPluginLadybird.h" #include #include -#include namespace Ladybird { ImageCodecPluginLadybird::~ImageCodecPluginLadybird() = default; -static Optional decode_image_with_qt(ReadonlyBytes data) -{ - auto image = QImage::fromData(data.data(), static_cast(data.size())); - if (image.isNull()) - return {}; - image = image.convertToFormat(QImage::Format::Format_ARGB32); - auto bitmap = MUST(Gfx::Bitmap::create(Gfx::BitmapFormat::BGRA8888, Gfx::IntSize(image.width(), image.height()))); - for (int y = 0; y < image.height(); ++y) { - memcpy(bitmap->scanline_u8(y), image.scanLine(y), image.width() * 4); - } - Vector frames; - - frames.append(Web::Platform::Frame { - bitmap, - }); - return Web::Platform::DecodedImage { - false, - 0, - move(frames), - }; -} - -static Optional decode_image_with_libgfx(ReadonlyBytes data) +Optional ImageCodecPluginLadybird::decode_image(ReadonlyBytes data) { auto decoder = Gfx::ImageDecoder::try_create_for_raw_bytes(data); @@ -67,18 +44,4 @@ static Optional decode_image_with_libgfx(ReadonlyBy }; } -Optional ImageCodecPluginLadybird::decode_image(ReadonlyBytes data) -{ - auto image = decode_image_with_libgfx(data); - if (image.has_value()) - return image; - - // NOTE: Even though Qt can decode SVG images for us, let's not do that. - // We should handle ourselves instead of cheating by using Qt. - if (data.starts_with("