Scrivere un file immagine in formato "testuale" per poi farlo convertire da ImageMagick non ha gran senso... a quel punto tanto vale usare una libreria per la gestione delle immagini (ad esempio FreeImage con i binding per C++) e usare quella per scrivere i file in questione. In alternativa, se vuoi partire "dalla gavetta", dovresti scegliere un formato di immagine facile (bmp o pnm, ad esempio, e in generale non formati compressi che sono un casino) e provare a lavorare con esso, magari scrivere una classe che consente di scrivere i singoli pixel, scrivere il tutto su file e così via.