Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JPG File Size Optimization - PHP, ImageMagick, & Google's Page Speed

I have photo gallery code that does image re-sizing and thumbnail creation. I use ImageMagick to do this. I ran a gallery page through Google's Page Speed tool and it revealed that the re-sized images and thumbnails both have about an extra 10KB of data (JPEG files specifically).

What can I add to my scripts to optimize the file size?


ADDITIONAL INFORMATION

I am using the imagick::FILTER_LANCZOS filter with a blur setting of 0.9 when calling the resizeImage() function. JPEGs have a quality setting of 80.

like image 683
Sonny Avatar asked Mar 29 '10 17:03

Sonny


2 Answers

I found this SO question, "Tools for JPEG optimization?", that has some good information, but the solutions are outside of PHP. Using hints from that question's solutions I found that there were two lossless optimizations that could be performed:

  1. Optimization of the Huffman coding tables
  2. Removal of meta-data (EXIF, etc)

Both of can be accomplished with ImageMagick this way:

  1. According to ImageMagick documentation, the optimal Huffman coding tables are computed by default. This step is already taken care of, yay!
  2. Removal of meta-data can be accomplished very simply by using the stripImage() method.

One image I tested was reduced by 12KB. The 600x450 file went from 63.42KB to 51.42KB, and the 140x105 thumbnail went from 17.98KB to 5.98KB.

like image 69
Sonny Avatar answered Sep 20 '22 15:09

Sonny


Run your images through Yahoo's SmushIt service, where the images are converted to a PNG with an exact number of colors. No loss in quality, but a loss in weight :)

like image 43
Adrian A. Avatar answered Sep 23 '22 15:09

Adrian A.