You can't cache a file if the browser doesn't fetch it. So the solution is to make the browser explicitly load the images- this is typically done with client side script.
The other issue is to ensure that it won't expire too soon from the client's cache - which is typically done by setting the "Expires" header. Other headers affect caching - read the HTTP documentation and get the Mozilla extension "live http headers".
You may need to do some web server specific configuration to set the "Expires" header etc on static files. For PHP files, the headers can all be set in PHP.
Mark