/* * Copyright (c) 2020-2022, Andreas Kling * Copyright (c) 2022, Dex♪ * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::Platform { struct Frame { RefPtr bitmap; size_t duration { 0 }; }; struct DecodedImage { bool is_animated { false }; u32 loop_count { 0 }; Vector frames; }; class ImageCodecPlugin { public: static ImageCodecPlugin& the(); static void install(ImageCodecPlugin&); virtual ~ImageCodecPlugin(); virtual Optional decode_image(ReadonlyBytes) = 0; }; }