Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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 fro here: http://www19.zippyshare.com/v/69590430/file.html

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

thanks

share|improve this question
    
Are you using Save For Web...? It should give you options for reducing the size, including color depth. –  James Jul 4 '12 at 16:02
    
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 Jul 4 '12 at 23:51
    
site uploader converted it to jpg. here is the png file s8.postimage.org/z4apal6z9/cw_Copy.png .....please dont use posterize as it wont work with other files I have.....thanks –  Welliam Jul 5 '12 at 11:59
1  
That link is also a JPEG. –  Dan D. Jul 5 '12 at 12:03
    
this time I am sure it is png www19.zippyshare.com/v/69590430/file.html.......thanks for your help –  Welliam Jul 5 '12 at 14:12

8 Answers 8

up vote 3 down vote accepted

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.

share|improve this answer
2  
I 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. –  porneL Mar 3 '13 at 23:47
    
The best numbers I've ever seen proven were around 8-15% but feel free to link me to better data. –  mikebabcock Mar 6 '13 at 1:18
1  
I needed to optimize a single png file and used tinypng.com for that. It saved me more than 50% of space. –  nylon100 Jul 2 at 16:56

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.

share|improve this answer
    
Thanks but failed not much optimization !! I uploaded the image –  Welliam Jul 4 '12 at 21:14

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.

share|improve this answer
    
thanks but pngout failed reduced few kb only !! –  Welliam Jul 4 '12 at 21:13
1  
Did you expect magic? Your image clearly have more than 256 colors. Posterize it to reduce amount of colors first. –  Oleg V. Volkov Jul 4 '12 at 21:44
    
When size reduced from 970 to 945 this is not good results also posterize does not work with other PNGs I have. –  Welliam Jul 4 '12 at 22:41

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

share|improve this answer
    
thanks tried and only few kb reduced !! –  Welliam Jul 4 '12 at 21:14

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.