How to reduce PNG file size for web?

16

3

I have a PNG-24 file with transparent background and its current size is 1.5 MB. How to reduce size or use PNG-8 file format and keep same quality ?

enter image description here

PNG file from here: http://www19.zippyshare.com/v/69590430/file.html

Example Image uploaded I tried all suggestions but no good results please advise

thanks

Welliam

Posted 2012-07-04T14:09:57.733

Reputation: 650

Are you using Save For Web...? It should give you options for reducing the size, including color depth. – James P – 2012-07-04T16:02:11.673

You example image is a JPEG file. If you want people to try different tools/methods on it, you should provide one of you PNG file instead...! – Laurent Parenteau – 2012-07-04T23:51:07.667

site uploader converted it to jpg. here is the png file http://s8.postimage.org/z4apal6z9/cw_Copy.png .....please dont use posterize as it wont work with other files I have.....thanks

– Welliam – 2012-07-05T11:59:35.550

1That link is also a JPEG. – Dan D. – 2012-07-05T12:03:12.917

this time I am sure it is png http://www19.zippyshare.com/v/69590430/file.html.......thanks for your help

– Welliam – 2012-07-05T14:12:19.373

Answers

6

PNG is a lossless compression format -- without changing the source material in the file, there's very little way to increase compression beyond the default highest level compression. The only real way to reduce the size will be to change the image, either by reducing resolution, or colour depth so that the PNG compression has less complexity to work with.

If you want high levels of compression for the image and don't care about lossless data storage, use JPEG.

mikebabcock

Posted 2012-07-04T14:09:57.733

Reputation: 1 019

1I needed to optimize a single png file and used tinypng.com for that. It saved me more than 50% of space. – None – 2014-07-02T16:56:02.827

4I wouldn't say little. Photoshop's Save For Web is so poor that PNGOUT can often losslessly reduce files by 20-40%. And Photoshop doesn't support PNG8+alpha which can be 70% smaller for some images. – Kornel – 2013-03-03T23:47:39.223

The best numbers I've ever seen proven were around 8-15% but feel free to link me to better data. – mikebabcock – 2013-03-06T01:18:18.797

9

RIOT can do that, and a lot more.

Radical Image Optimization Tool (RIOT for short) is a free image optimizer that will let you to visually adjust compression parameters while keeping minimum file size.

It uses with a side by side (dual view) or single view interface to compare the original with the optimized image in real time and instantly see the resulting file size.

The image optimizer is lightweight, fast and simple to use, yet powerful for advanced users. You will be able to control compression, number of colours, meta data settings and much more, and select image format (JPEG, GIF or PNG) for your output file.

Another possibility is to use a combination of pngquant, pngout, and pngcrush, as described here, but this is from the command line.

Here are the instructions how to convert png24 images into png8 for ie6 goodness, all through the command line using open source tools (i think) pngquant +pngout + pngcrush.

1- quantize image into 256 (so basically png8′s look crap with large sprites or sprites with a large colour range).

pngquant 256 some_24_bit.png

2- convert image form a png24 to a png8

pngout -c3 -d8 -y -force some_24_bit.png some_8_bit.png

3- compress image

pngcrush some_8_bit.png -bit_depth 8 -brute -rem alla -reduce some_8_bit_small.png

Laurent Parenteau

Posted 2012-07-04T14:09:57.733

Reputation: 648

6

Try TinyPNG

From their website:

How does it work?

When you upload a PNG (Portable Network Graphics) file, similar colors in your image are combined. This technique is called “quantization”. Because the number of colors is reduced, 24-bit PNG files can be converted to much smaller 8-bit indexed color images. All unnecessary metadata is stripped too. The result: tiny PNG files with 100% support for transparency.

They have two options:

  • Drag and drop the images onto their website and it gets automatically processed. Free service. (Up to 20 images. Max 5 MB each)
  • Photoshop plugin. This costs $.

I have not tried the PS plugin so can't comment on how well it works.

Dhaust

Posted 2012-07-04T14:09:57.733

Reputation: 171

This was a really good tip, TinyPNG reduced my 24bit PNG file out of Photoshop, from 200k to 50k, and it retained blended transparency! Thanks for your reply. NOTE it was nearly indistinguishable in image quality. – TripleAntigen – 2017-07-16T04:57:56.957

It really works! My 1MB PNG image became 253KB without loosing quality! – Bruno Serrano – 2018-03-15T11:06:54.653

5

If you don't mind the command line, take a look at OptiPNG, it might be what you're after.

OptiPNG is a PNG optimizer that recompresses image files to a smaller size, without losing any information. This program also converts external formats (BMP, GIF, PNM and TIFF) to optimized PNG, and performs PNG integrity checks and corrections.

Renan

Posted 2012-07-04T14:09:57.733

Reputation: 7 463

Thanks but failed not much optimization !! I uploaded the image – Welliam – 2012-07-04T21:14:02.137

3

Use combination of pngout and deflopt. pngout will automatically determine if your PNG colors fit in PNG-8 and use it. deflopt will squeeze out some extra bytes from already optimized image - it is utility to work with any deflated data and PNG is one of those.

Oleg V. Volkov

Posted 2012-07-04T14:09:57.733

Reputation: 597

thanks but pngout failed reduced few kb only !! – Welliam – 2012-07-04T21:13:37.893

1Did you expect magic? Your image clearly have more than 256 colors. Posterize it to reduce amount of colors first. – Oleg V. Volkov – 2012-07-04T21:44:05.563

When size reduced from 970 to 945 this is not good results also posterize does not work with other PNGs I have. – Welliam – 2012-07-04T22:41:25.057

3

A nice idea for handling PNG with alpha channel in the context of website development would be to let the server do the trick for you: dynamically separate the image data from the alpha channel on the server, optimize both of them separately and recombine them using the canvas element and some JavaScript in the browser. Ta-Da! Works with all modern browsers.

Here is explained how it’s done:

http://headers-already-sent.com/artikel/shrinkimage-1/

You’ll also find a complete ZIP package with the PHP script and a jQuery plugin. Let us know what you think about this.

Andreas Ollmann

Posted 2012-07-04T14:09:57.733

Reputation: 31

1

Let me introduce FileOptimizer. It combines various methods for image optimization (including EXIF removal for saving few extra bytes - can be turned off).

Test results and comparison with other solutions.

enter image description here

rluks

Posted 2012-07-04T14:09:57.733

Reputation: 399

1

If you really need to shrink an image, and all the easy suggestions don't work, the final answer is to break the image into compressible pieces and recombine them on the client with scripting.

The image from the question looks like a color gradient with vertical lines and some splotches/noise. Break that up into the following layers:

  1. The color gradient with no lines or noise. This will compress well in PNG and very well in JPEG. Even better, use JavaScript to generate the color gradient on the client. You could probably do it in less than 200 bytes of JS.
  2. The vertical lines with no color or noise. You could compress this down to a single 4 bit channel (alpha or grey). You only need a 1 pixel tall image, which you can stretch. That would compress very well in PNG.
  3. The noise. Again, all you need is a single 4 bit channel (alpha or grey). Without color or lines, this should compress very well in PNG or JPEG.

Combine the layers into a single image with JavaScript, and your whole "image" could be 15KB or less.

This sort of work was industry standard in Games for decades, and still is. The great thing is that Photoshop already has all those separate layers, if you created your image like a professional.

Sophit

Posted 2012-07-04T14:09:57.733

Reputation: 171

1

Standard PNG files already are the most compressed image format you can use, hence why PNG files are used so much for images on websites, especially for design purposes.

But there is still a way you can compress PNG files even further; by decreasing the number of colors used in the image. This can often reduce the file size up to 70% or even higher.

The best automated free software with the highest overall compression percentage I found for this is FileOptimizer which uses multiple engines(ie. PngOptimizer, PNGOUT, pngwolf, etc.) to compress the image to the smallest size possible.

Another online tool I found with good results is this one: http://www.giftofspeed.com/png-compressor/

William Dresker

Posted 2012-07-04T14:09:57.733

Reputation: 11

0

ScriptPNG http://css-ig.net/scriptpng

it gives you about 10 different options including lossy! I tried a bunch and this windows batch file (with bunch of .exes) is great

I personally use it to compress to 8bit lossy. Not really sure how it works but my screenshots look the same. I use it to compress screenshots. I had about 2GB of pngs, now only 700mb

Mikey

Posted 2012-07-04T14:09:57.733

Reputation: 1 560