Here is an useful tool for improving performance of your website: The CSS sprite generator takes a number of source images and combines them into a single "sprite" image and supplies CSS to map to each image within the sprite. The technique this tool employs is often used to improve the performance of a web site by reducing the number of HTTP requests that the client's browser needs to make.
CSS sprites are a way to reduce the number of HTTP requests made for image resources referenced by your site. Images are combined into one larger image at defined X and Y coordinates. Having assigned this generated image to relevant page elements the
background-position CSS property can then be used to shift the visible area to the required component image.
This technique can be very effective for improving site performance, particularly in situations where many small images, such as menu icons, are used. The Yahoo! home page, for example, employs the technique for exactly this.
I’ve installed a copy of this tool at:
And took time to:
- Improve the overall internal security of the tools, by using some technique of Joomla! framework, so most type of attacks (XSS, parameter tampering, path browsing, avoid direct execution of files) should be eliminated,
- The tool now extract the ZIP file without being forced to use the dangerous shell_exec php command (I switch it off on my host anyway), the tool support&160; if they are available in that order: ZipArchive(), zip_open() and shell_exec()
- Make the code a bit more portable (avoiding .. inclusion for files, use DIRECTORY_SEPARATOR)
And I did audit the code using Acunetix Web security Scanner, the result can be seen below:
The source code for CSS Sprite Generator is available for download and is covered by a BSD license. Want to run a local copy, get the source code at https://launchpad.net/css-sprite-generator
My version will be available soon, link to appear later this week.
Note about PHP and Zip support
To install zip PECL package run the following as root:
# pear installhttp://pecl.php.net/get/zip
and create a new file at
# vi /etc/php5/conf.d/zip.ini
with following content