If your Linux command-line fu is strong, try using
ddrescue to make a backup image of your hard disk, then use
foremost to extract the photos (JPGs, I assume?)
From experience, I can say that this is a remarkably effective approach to use on failing drives if your objective is to recover the types of files that Foremost can recognise, including photos, movies, music, and Office documents.
ddrescue is special because it was designed specifically to read flaky disks. Regular
dd will stop dead when it encounters errors;
ddrescue shrugs, marks the bad sector to be tried again later, and moves on.
GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying hard to rescue data in case of read errors.
foremost is special because it does not rely on the filesystem at all. Your partition table or filesystem structures could be completely trashed, yet
foremost will still recover (many of) your files.
Foremost is a console program to recover files based on their headers, footers, and internal data structures. This process is commonly referred to as data carving. Foremost can work on image files, such as those generated by dd, Safeback, Encase, etc, or directly on a drive. The headers and footers can be specified by a configuration file or you can use command line switches to specify built-in file types. These built-in types look at the data structures of a given file format allowing for a more reliable and faster recovery.
Other alternatives are
PhotoRec which runs on Windows, though I'm not sure how well it will do in the face of disk errors, and
GetDataBack which is paid software.