C TGA pliki
Droga do pliku wejściowego TGA (i)
Droga do pliku wyjściowego TGA (o)
Droga do folderu z literami (f)
Przykładem jest:
$ ./meme-generator img1.tga out.tga czcionka
Jeśli na wejściu programu nie ma wszystkich trzech parametrów, zapisz wiersz z wiadomością "Wrong parameters" i zakoń program kodem 1.2 .Program również czyta i z pliku wejściowego TGA.Jeśli wystąpi błąd podczas pobierania, wyciągnij wiersz z wiadomością "Could not load image" i wyjdź z programu z kodem 1.3 .Program pobiera 26 obrazów TGA z folderu czcionek (f), jeden na każdy znak wielkiego angielskiego abecedy.Pliki są nazywane A.tga, B.tga, C.tga itp.D .(patrz nafoldery z czcionkami w szablonie (template.tar)Jeśli wystąpi błąd podczas pobierania czcionki, program kończy pracę z kodem 1.CzteryNastępnie program odczytuje z wejścia linię, która będzie zawierać dwa liczby (top i bottom), podzielone przez przepaść.Top informuje, ile wierszy tekstu wyświetla się w górnej części obrazu, a bottom informuje, ile wierszy tekstu wyświetla się w dolnej części obrazu.Następnie program odczytuje z wpisu top + bottom linie tekstu, które stopniowo przepływają do wejściowego obrazu TGA.Linia może zawierać tylko litery i przepisy alfabetu angielskiego, a pozostałe symbole są ignorowane.Konwertuj litery angielskiego alfabetu w litery przepisowe przed renderingem (dostępne litery zawierają tylko litery przepisowe).Każdy wiersz może zawierać nie więcej niż 100 znaków (w tym symbol nowego wiersza).5 .Program odbija załadowane linie w obrazie wejściowym (top linie w górnej i bottom linie w dolnej części).Styl renderingu zależy od Ciebie, ale staraj się jak najdokładniej śledzić przykład.6.Przechowuj edytowane wstępne zdjęcie TGA na dysku w formacie TGA w ścieżce określonej w parametrach linii polecenia.Podczas pisania pliku wyjściowego TGA otrzymasz tytuł pierwotnego pliku wejściowego!Będzie to o wiele łatwiejsze niż spróbować przywrócić właściwy tytuł ręcznie.Dostępna jest prosty szablon, który zawiera kod do pobierania obrazu TGA z skryptów, foldery i dwa obrazy do testowania programu.Przykład kodu nie obejmuje sprawdzania błędów!Musisz dodać go do kodu samodzielnie.Komentarze
Korzystanie z VLA jest zabronione.Podczas wykonywania zadania należy odpowiednio określić własne typy danych, na przykład w celu wyświetlania obrazu TGA w pamięci, aby można było dobrze pracować z obrazami.Stwórz również zestaw funkcji do przetwarzania obrazu TGA, tak aby nie miał tylko kodu w głównej funkcji.Nie musisz obsługiwać czarno-białych obrazów TGA lub obrazów TGA z przejrzystością (RGBA).Dla tego zadania przypuszczamy, że wszystkie obrazy TGA mają głębokość koloru 24 bitów (RGB) i że ich system koordynatów zaczyna się w lewym górnym rogu (tj.A w.nie jest dozwolony 5 bit w dekryptorze lub wartość początku/zmieszania w tytułach).Będziesz miał błędy pamięci podczas pracy z wierszami lub pikseli.Wykorzystaj adres sanitizer.Bardzo przydatne będzie użycie debuger VSCode w rozwiązywaniu tego zadania.Nawet w trybie odinstalowania/stopniowym możesz przekierować plik do wpisu programu tak, że nie będziesz musiał cały czas rejestrować wpisu ręcznie.Po wartościach górnych i dolnych oblicz pozycje, w których powinny znajdować się poszczególne wiersze tekstu, a następnie naciśnij je na obraz wejściowy TGA.Indywidualne obrazy znaków TGA zawierają czarny tło (RGB (0, 0, 0)) i biały przedni plan.Kopiując znak do piksela wstępnego obrazu, ignoruj piksele z czarnego tła, a tym samym kopiuj tylko nieczarne piksele.W przeciwnym razie będziesz miał odciągający czarny rektum wokół każdego znaku na wynikającym obrazie.Załóżmy, że wysokość każdego znaku w czcionce wynosi 34 pikseli (patrzkod w szablonie), szerokość każdego znaku jest inna.Podczas rysowania należy wziąć pod uwagę szerokość rysowanych symboli, aby poszczególne symbole nie były zakryte.Pozostaw komentarz w kodzie.
Załączniki 1
Aktualne zlecenia dla freelancerów w kategorii C i C++
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 23 godziny 44 minuty temu ∙ 5 ofert |
Opracowanie mapy nasion Minecraft Java / przeglądarki nasion dla strony internetowejOpracowanie mapy nasion Minecraft Java / Podgląd nasion dla strony internetowejOpis projektu Potrzebne jest opracowanie narzędzia opartego na przeglądarce Mapa nasion Minecraft Java / Podgląd nasion, które będzie działać na naszej stronie i pozwoli użytkownikowi wprowadzić… C i C++, Układ HTML i CSS ∙ 1 dzień 6 godzin temu ∙ 13 ofert |
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x)
82 PLN
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x) na identycznej platformie sprzętowej (ESP32 + SX1268, 2W) według kryteriów zasięgu, przepustowości, stabilności łącza i zużycia energii. Przeprowadzić… C i C++, C# ∙ 5 dni 13 godzin temu ∙ 2 oferty |
Konsultacja i audyt bieżącego projektu na Odoo 19 Community EditionSzukamy programisty Odoo — samodzielnego dewelopera z doświadczeniem w pracy z Odoo 19 Community Edition, w tym z wykorzystaniem Claude Code. Potrzebujemy specjalisty, który ma zrealizowane projekty w Odoo oraz praktyczne doświadczenie w programowaniu z użyciem Claude Code.… C i C++, Javascript & Typescript ∙ 8 dni 14 godzin temu ∙ 8 ofert |
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 9 dni 15 godzin temu ∙ 4 oferty |