mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-25 05:55:13 +00:00
PBM, PGM, and PPM image loaders are mostly common. The only difference is how the data is read and the associated magic numbers. The magic numbers are already made common using the loading contexts. Now make the implementations common via a class template which accepts the context to disambiguate.
26 lines
689 B
C++
26 lines
689 B
C++
/*
|
|
* Copyright (c) 2020, Hüseyin ASLITÜRK <asliturk@hotmail.com>
|
|
* Copyright (c) 2022, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/StringView.h>
|
|
#include <LibGfx/ImageDecoder.h>
|
|
#include <LibGfx/PortableImageMapLoader.h>
|
|
|
|
namespace Gfx {
|
|
|
|
struct PBM {
|
|
static constexpr auto ascii_magic_number = '1';
|
|
static constexpr auto binary_magic_number = '4';
|
|
static constexpr StringView image_type = "PBM";
|
|
};
|
|
|
|
using PBMLoadingContext = PortableImageMapLoadingContext<PBM>;
|
|
using PBMImageDecoderPlugin = PortableImageDecoderPlugin<PBMLoadingContext>;
|
|
|
|
bool read_image_data(PBMLoadingContext& context, Streamer& streamer);
|
|
}
|