Interesante código manu, pero como no te andes con cuidado puedes quedarte sin fotos
En concreto, los errores EOutOfResources y EOSError pueden producirse aunque el archivo sea valido, solo hace falta que pilles al windows en un "mal momento".
Por otro lado, comprueba que:
Código Delphi
[-]
dirtmp+'\'+ExtractFileName(lista.Strings[z])
es verdaderamente la ruta del archivo.