no l'errore è dovuto al fatto che cerca di aprire un file che non è un immagine...
la soluzione potrebbe essere guardare cosa c'è dentro il file 'listato'

hai fatto

ls *.jpg > listato

?
O hai fatto solo ls ? perchè in tal caso prenderebbe anche il nome dello script e se stesso.

ps.
effetivamente non è un gran che questo script, perchè non fa nessun controllo, ma l'ho scritto in fretta