Moin,
Bei
www.wotsit.org findest du den Dateiaufbau. Realisieren kannst du das ganze über die Canvas bzw. über Scanlines.
Wenn ich jetzt ganz schnell was aus dem Ärmel schütteln müsste, würde ich sagen, du baust dir ein zweidimensionales Array von TColor-Werten, welches du dann (durch ein Gitter unterbrochen) ausgibst. Einen Zoom würde ich so realisieren: Du errechnest die Anzahl der Pixel auf Zoom-Prozentwert-Basis. Also bei Hundert Prozent sieht die Rechnung so aus: Anzahl der zu zeichnenden Pixel = Anzahl der Originalpixel (wenn du einen einfärben willst, dann z.B. 1) * (ZoomWert (z.B. 100) div 100).
Ich hoffe, ich konnte dir helfen. Ach ja, abschließend lege ich dir die Hilfe von Delphi nahe, falls du mit Canvas bzw. den Eigenschaften nicht zurechtkommst.
Grüße,
Max
Edit: Achso, ja der Wikipedia-Artikel tut's natürlich auch
Edit 2: Das einfärben per Mausklick dürfte dann ganz einfach sein. Du hast ja das Array, wenn jemand dann auf die Canvas klickt dann rechnest du den eventuellen Zoom (Gitter beachten!) weg, damit dir der Basispixel bleibt, die Position kannst du dann in das Array übernehmen, dort den Farbwert änder und schließlich die Canvas neu zeichnen.