Serenity Operating System
1/*
2 * Copyright (c) 2023, Liav A. <liavalb@hotmail.co.il>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <AK/DeprecatedString.h>
8#include <AK/Random.h>
9#include <AK/StringBuilder.h>
10#include <LibCore/ArgsParser.h>
11#include <LibCore/DirIterator.h>
12#include <LibCore/System.h>
13#include <LibGUI/Application.h>
14#include <LibGUI/Desktop.h>
15#include <LibMain/Main.h>
16
17ErrorOr<int> serenity_main(Main::Arguments arguments)
18{
19 TRY(Core::System::pledge("stdio rpath unix"));
20 DeprecatedString path;
21
22 Core::ArgsParser args_parser;
23 args_parser.add_positional_argument(path, "Path to image", "path");
24 args_parser.parse(arguments);
25
26 auto bitmap = TRY(Gfx::Bitmap::load_from_file(path));
27
28 TRY(Core::System::pledge("stdio"));
29 Vector<u8> data;
30 for (auto height = 0; height < bitmap->size().height(); height++) {
31 auto* scanline = bitmap->scanline_u8(height);
32 for (auto byte_index_in_row = 0u; byte_index_in_row < bitmap->pitch(); byte_index_in_row++) {
33 TRY(data.try_append(scanline[byte_index_in_row]));
34 }
35 }
36 VERIFY(data.size() == bitmap->size_in_bytes());
37 TRY(Core::System::write(STDOUT_FILENO, data.span()));
38 return 0;
39}