Solution 1. Active DNS monitoring/advertising
Setup an images.domain.com with a low TTL (30s-ish) to adverties your 4 IP's:
10.1.1.1, 10.1.1.2, 10.1.1.3, 10.1.1.4
Your name servers then need to actively poll the http status of each IP (as you would monitor with the load balancer) and stop advertising an IP when it's state is 'down' Make it a thorough test but avoid any services common to all the boxes (e.g a single db backend). When a node fails the monitor, it stops being advertised in DNS.
More DNS requests due to low TTL.
Failover takes "DNS TTL" seconds (and some people like to disobey TTL's as well)
Your name servers need to be relatively close to the services, or have sensible defaults configured say if there was a network outage between the NS and your image servers.
You could also do 4 separate domains names that fail back to another ip via the same method.
Solution 2. IP failover
rackandboneman's IP takeover is implemented without much hassle in linux with keepalived/lvs using the the VRRP protocol. (Assuming your boxes are close to each other on the network and linux, os's like bsd and solaris have vrrp/carp implementations)
With 4 boxes you can create a circle topology for the Virutal IP failover which means you can lose 2 boxes next to each other but only lose 1 VIP, the box on the left of the 's has the highest priority for the VIP.
vip 1 vip 2 vip3 vip4
nodes [ 1 <-> 2 ] [ 2 <-> 3 ] [ 3 <-> 4 ] [ 4 <-> 1 ]
or 3 nodes per VIP, in priority order, more complex setup but better availability.
nodes [1 - 2 - 3] [2 - 3 - 4] [3 - 4 - 1 ] [ 4 - 1 - 2]
With keepalived, I would setup the monitor script to hit the local http service your load balancer would hit to judge the health of the server. Also make sure the VRRP traffic is using the same interface as the real traffic if you have multiple nics.