Per mettere uno sfondo bisogna mettere il disegno/foto prima che la routine di output metta il testo della pagina.
Quindi dal puto di vista della programmazione è difficile, se non si conoscono i meccanismi interni di uscita delle pagine, e per questo bisogna ricorrere a pacchetti scritti da persone che questi meccanismi conoscono bene, oppure pacchetti come Tikz che sanno agire per conto proprio.
Io direi che non c’è nulla di male se creando una classe si richiede uno di questi programmi e poi lo si usa per definire uno stile di pagina, per esempio, adatto solo alla composizione della pagina iniziale dei capitoli, cosa che si può fare semplicemente specificando \thispagestyle{miapaginainiziale}.
Se poi si legge il codice interno di questi pacchetti, si può provvedere da soli con pochi comandi ad hoc, inve che con i comandi generici del pacchetto esaminato. Io, per esempio, ho trovato molto istruttivo leggere il codice del pacchetto eso-pic, e guarda caso, si tratta di usare l’ambiente picture con una “picture” di dimensioni nulle, infilato nel piedino o nella testatina che ci sono anche nello stille di pagina plain ed empty, ma che sono per lo più vuoti; diventa un giochetto semplicissimo, ma, visto che vuoi programmare in LaTeX, quella, secondo me, è la via più semplice e si imparano tanti trucchetti già disponibili con il nucleo di LaTeX, senza bisogno di ricorrere a pacchetti esterni.