Serenity Operating System
at master 39 lines 1.2 kB view raw
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}