神刀安全网

Optimize the size of .PNG images automatically on your webserver with optipng

A couple of weeks ago I write a blogpost on the technical aspects of SEO . One of the readers translated it into French and reported an additional tip: my images in that post were way too big.

François was even kind enough to include a screenshot with the savings I missed out on.

Optimize the size of .PNG images automatically on your webserver with optipng

I used to have a workflow where I ran every image through ImageOptim to compress them as much as possible. But it’s a manual step that’s too easy to ignore.

So here’s a way to automate it. These couple of scripts automatically run and compress your files for you, so you don’t have to think about them ever again. They use the optipng tool in the background.

Install optipng

You start by installing the optipng tool.

On Red Hat or CentOS:

$ yum install optipng

On Ubuntu / Debian:

$ apt-get install optipng

Now, let’s automate this.

Automatically optimise your images every hour

Friendly reminder: before running any of these tools, make sure you have a back-up to restore from!

The optipng tool itself works pretty simple. The most basic command is optipng image.png , which optimises the image called ‘image.png’ and replaces it on your server (so you lose the original!).

We can add some additional parameters that further reduce the size, increase the compression ratio and strip all META info from the PNG file you don’t need. Here’s my current command for the most optimal size.

$ optipng -o7 -f4 -strip all -quiet image.png

This takes the file called ‘image.png’, runs all sorts of optimisations over it, strips meta data and overwrites the file with the new and improved version.

Now, to run this automatically on your server, all you need is the following cronjob. Let this run every hour, and it’ll take all PNG files created in the last hour and optimises them for you.

$ find htdocs/wp-content/ -cmin -60 -name '*.png' | xargs optipng -o7 -f4 -strip all -quiet

This essentially does these things:

  1. Find all *.png files in the ‘htdocs/wp-content’ directory that were created in the last hour (this is the directory where WordPress uploads its content)
  2. For each of those found files, run the optipng command on them

Add that to your crontab and you never have to think about it again.

$ crontab -l 0 * * * * find ~/htdocs/wp-content/ -cmin -60 -name '*.png' | xargs optipng -o7 -f4 -strip all -quiet

All done!

Optimise all your existing images

If you’re only thinking about activating this after you have a bunch of files, you may want to run this tool over all your images — not just the ones modified in the last hour.

I’ll repeat myself, but here it goes: before you run this over all your files, have a back-up! These settings replace the original file, so you no longer have the original.

$ find ~/htdocs/wp-content/ -name '*.png' | xargs optipng -o7 -f4 -strip all -quiet

That command searches for all ‘*.png’ files in the ~/htdocs/wp-content/ folder and runs the optipng command over all of them.

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Optimize the size of .PNG images automatically on your webserver with optipng

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮