diff --git a/Userland/Libraries/LibGfx/GrayscaleBitmap.h b/Userland/Libraries/LibGfx/GrayscaleBitmap.h new file mode 100644 index 0000000000..a779c5a4cd --- /dev/null +++ b/Userland/Libraries/LibGfx/GrayscaleBitmap.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023, MacDue + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include "Size.h" +#include +#include +#include + +namespace Gfx { + +class GrayscaleBitmap { +public: + GrayscaleBitmap() = delete; + constexpr GrayscaleBitmap(ReadonlyBytes data, unsigned width, unsigned height) + : m_data(data) + , m_size(width, height) + { + VERIFY(width * height == data.size()); + } + + constexpr u8 pixel_at(unsigned x, unsigned y) const { return m_data[y * width() + x]; } + constexpr ReadonlyBytes data() const { return m_data; } + + constexpr IntSize size() const { return m_size; } + constexpr unsigned width() const { return m_size.width(); } + constexpr unsigned height() const { return m_size.height(); } + +private: + ReadonlyBytes m_data {}; + IntSize m_size {}; +}; + +}