I developed a jQuery plugin that helps reducing the filesize of alpha transparent, photo like PNGs (so any PNG which would normally better be saved as JPEG if it had no alpha channel). The plugin requires some PHP processing and changes to .htaccess in addition.
 The plugin takes a URL to an image and requests a file of type “.shrunk” (which is JSON) via AJAX instead.
 The .htaccess redirects this request to a PHP-Script that splits the original PNG into it’s alpha-channel (saved as base64 PNG within the shrunk-file) and it’s color-channel (saved as base64 JPEG with variable compression within the shrunk-file).
 When the shrunk-file is loaded via AJAX the plugin recombines both channels via HTML5 canvas and writes them back to the source image (or CSS-background) as DataURI.
If the browser does not support canvas or DataURI the plugin should fallback to simply use the original PNG as fallback. Same should apply if anything went wrong with the AJAX-request.
The shrunk-file is, in most cases, between 70-80% smaller than the original PNG. The lowest gain I have seen yet is about 50% of the original size.