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
.
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:
- Optimization of the Huffman coding tables
- Removal of meta-data (EXIF, etc)
Both of can be accomplished with ImageMagick
this way:
- According to ImageMagick documentation, the optimal Huffman coding tables are computed by default. This step is already taken care of, yay!
- 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.
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 :)
精彩评论