Jak napisać klase która reprezentuje grafike. Musi mieć możliwość tworzenie, odczytywania i zapisywania do pliku png.
Każdy obraz PGM składa się z następujących elementów:
- "Magiczna liczba" określająca typ pliku. Magiczna liczba obrazu pgm to dwie litery "P5".
- Białe znaki (spacje, tabele, CR, LF).
- Szerokość, sformatowana jako dziesiętne znaki ASCII.
- Biała przestrzeń.
- Wysokość, ponownie w ułamku dziesiętnym ASCII.
- Biała przestrzeń.
- Maksymalna wartość szara (Maxval), ponownie w ułamku dziesiętnym ASCII. Musi być mniejszy niż 65536 i większy niż zero.
- Pojedyncza spacja (zwykle nowa linia).
- Raster rzędów wysokości, w kolejności od góry do dołu. Każdy wiersz składa się z wartości Szarości szerokości, w kolejności od lewej do prawej. Każda szara wartość jest liczbą od 0 do Maxval, gdzie 0 oznacza czarny, a Maxval jest biały. Każda szara wartość jest reprezentowana w czystym binarnym przez 1 lub 2 bajty. Jeśli Maxval ma mniej niż 256, jest to 1 bajt. W przeciwnym razie jest to 2 bajty. Najbardziej znaczący bajt jest pierwszy.