mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-07 19:57:45 +03:00
6a23dfbc92
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.
28 lines
712 B
C++
28 lines
712 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 PGM {
|
|
static constexpr auto ascii_magic_number = '2';
|
|
static constexpr auto binary_magic_number = '5';
|
|
static constexpr StringView image_type = "PGM";
|
|
u16 max_val { 0 };
|
|
};
|
|
|
|
using PGMLoadingContext = PortableImageMapLoadingContext<PGM>;
|
|
using PGMImageDecoderPlugin = PortableImageDecoderPlugin<PGMLoadingContext>;
|
|
|
|
bool read_image_data(PGMLoadingContext& context, Streamer& streamer);
|
|
}
|