Io ho da poco fatto un programma in java identico simile photoshop (include filtri, ridimensionamenti, curve colori etc), con tanto di apertura e salvataggio file.

Ho utilizzato le librerie JAI che hanno incapsulato in maniera trasparente le strutture dei file di immagine.

Io credo ti sia inutile "riscoprire l'acqua calda", sicuramente in C ci saranno delle librerie atte ad aprire un file ed a memorizzarlo in una struttura quale una matrice (o più matrici a seconda del numero di bande).
Inoltre se una libreria esiste già, i suoi algoritmi saranno sicuramente il massimo a livello computazionale