Čtvrtý bonusový úkol
Odevzdání
Úkol odevzdejte mailem (adresu najdete na webu katedry), s předmětem ZP2 - Bonusový úkol 4, jako přílohu soubor se zdrojovým kódem (a nic dalšího). Odevzdávejte nejpozději 27. 4. ve 23:59.
Body
Za úkol lze získat 4 body.
Zadání
PBM je textový formát pro uložený černobílého obrázku (každý pixel je buď černý nebo bílý).
- Řádky začínající znakem
#jsou komentáře, ty mohou být pouze na začátku souboru. - První platný řádek obsahuje řetězec
"P1". - Druhý platný řádek obsahuje dvě čísla v desítkové soustavě oddělená mezerou, tato čísla udávají šiřku a výšku obrázku (v pixelech).
- Počínaje třetím řádkem obsahuje soubor pixelová data. Jeden pixel je buď 0 nebo 1. Pixely jsou zapsány za sebou po řádcích odshora obrázku, jeden řádek obrázky na jeden řádek souboru. Mezi pixely na jednom řádku je mezera. Příklad: .pbm.
Doplňte chybející kód v následujícím. (Je povoleno přidat si pomocné funkce atd.)
//
// struktura pro černobílý obrázek
//
typedef struct
{
//@TODO
} Picture;
//
// nahraje obrázek ze souboru ve formátu pbm
// můžete předpokládat korektní formát.
//
Picture load_from_pbm(char *filename)
{
//@TODO
}
//
// zrcadlově obrátí obrázek podle svislé osy
//
void mirror_picture(picture *pict)
{
//@TODO
}
//
// uloží obrázek do souboru v pbm formátu
//
void save_to_pbm(char *filename, picture src)
{
//@TODO
}
int main()
{
Picture pict = load_from_pbm("test.pbm");
mirror_picture(&pict);
save_to_pbm("foo.pbm", pict);
return 0;
}