
PNG that works - CrazedGeek
http://calendar.perfplanet.com/2010/png-that-works/
======
unwind
This:

 _When you need full color, but don’t need transparency, use JPEG instead._

implies that pixel-perfect results (non-lossy compression) is never desirable
for images with full color, which I find to be a very provocative
simplification.

On the other hand, on the web in general, perhaps it is good advice as a "rule
of thumb" for people who aren't likely to deal with images where each pixel
really matters.

~~~
regularfry
You can set JPEG compression levels such that it's lossless, which gives a
filesize not dissimilar to PNG.

~~~
masklinn
> You can set JPEG compression levels such that it's lossless

No you can't. You can use Lossless JPEG instead, but regular JPEG (or
JPEG2000) is a lossy format _period_.

edit: as tspiteri points out, JPEG 2000 does have a lossless mode. My bad.
JPEG still does not though.

~~~
DarkShikari
There are actually _two_ lossless JPEG modes even ignoring JPEG-2000: JPEG-LS
and LJPEG. I don't know how widespread support for either is, but ffmpeg can
encode to both. It confused the crap out of me a few months ago when I was
trying to fix a bug and realized that the two were actually totally different
formats.

The latter seems to be older and part of the original spec, while the former
seems to be newer and a lot less bad.

~~~
masklinn
These are not modes, they're different formats (like very, very different)
using the same name.

And yes, LJPEG is the "complete crap" version which predates (and was blown
away by) PNG, JPEG-LS is a second take on a lossless jpeg format.

------
ars
"When you need full color, but don’t need transparency, use JPEG instead."

No. Don't. JPEG is for photos (and rarely for gradients). For drawings, line
art, cartoons, clip art, etc. use 24bit PNGs - they work just fine.

~~~
wladimir
Indeed, PNG is very good at losslessly compressing artificial images which
have large uniform (or gradient) areas, such as diagrams, drawings and so on.

SVG(.gz) could be even more compact (and just as important, resolution
independent), but alas we'll have to wait a bit before support in browsers is
common.

------
ladon86
The point about Photoshop not supporting paletted transparent PNGs was new to
me. I only use Photoshop, so I actually believed that alpha channels were only
available for 24-bit PNGs.

I wonder if Photoshop has planned future support for paletted, 8-bit alpha
channel PNGs?

~~~
pornel
Photoshop's PNG support hasn't changed for years, so don't hold your breath.

Fireworks supports 8bit+a. I'm also working on modernised pngquant, which
might give higher-quality results than Fireworks:

<https://github.com/pornel/improved-pngquant>

------
there
the giant picture of the author staring at me while i'm reading the page is
kind of creeping me out.

~~~
colinprince
Nuke anything ftw [https://addons.mozilla.org/en-US/firefox/addon/nuke-
anything...](https://addons.mozilla.org/en-US/firefox/addon/nuke-anything-
enhanced/)

------
jalada
All of this fuss is largely for IE6 and it's really time to stop fussing over
IE6 so much.

~~~
reemrevnivek
No, a significant portion of it is due to Photoshop's buggy PNG
implementation.

It's definitely not time to stop fussing over Photoshop; that's not going away
anytime soon.

~~~
jrockway
_It's definitely not time to stop fussing over Photoshop; that's not going
away anytime soon._

It depends on who you are. I have never in my life used Photoshop. So if it
disappeared from the planet, my life would change in no way, except that The
GIMP would have more contributors.

~~~
sukuriant
Or everyone would go to Paint Shop Pro

------
bni
The article suggest you could use (among others): "OptiPNG + Pngcrush combo"

What is the benefit of using pngcrush in addition to optipng? I got exellent
reults using optipng only.

~~~
masklinn
PNG recompressors perform different optimization and try at different levels
of hard, so the improvements coming from one compressor may be different (and
combinable with) another's.

Furthermore, depending on agressivity they may change some encoding property
of the PNG and make them easier (or harder) to recompress via other
compressors.

The benefit of using both is that it often allows you to squeeze a few extra
percentage point of compression. Ideally you should test all combinations of
compressors (presence and sequence) but that tends to be a bit expensive,
especially when you involve PNGOut as it takes a pretty long time to run.

FWIW, I just tried the following on a screen capture:

* OptiPNG alone

* PNGCrush then OptiPNG

* OptiPNG then PNGCrush

* Squash (which runs a sequence of PNGrush, OptiPNG and AdvPNG, it can also run PNGOut but I didn't install it)

The source file was 250K, the files that went through OptiPNG,
PNGCrush+OptiPNG and OptiPNG+PNGCrush were compressed to 159K (with a slight
edge for the one compressed via PNGCrush first: both Optis are 162997 bytes,
while PNGCrush + OptiPNG is 162978) and the file compressed via PNGSquash is
144K (147249 bytes).

------
masklinn
> For the mouse-loving people I wrote ImageOptim. It combines all the best
> image opti­misa­tion tools with drag’n'drop Mac GUI.

I roll with PNGSquash[0]

[0] <https://github.com/msanders/PNGSquash>

------
ck2
Note that for small images under 1k, sometimes gif will be smaller than png
because of the header size if you only need 1bit transparency. But you should
be using sprites anyway.

I wish that ImageAlpha GUI was available for windows.

------
zokier
The PNG with ICC profile seems not to work in my system, Firefox 3.6.15,
Windows 7

~~~
pornel
I think it might require trip to about:config

Here's an evil image that will look red (instead of blue) when ICC isn't
working, and it's also easily ruined by invalid gamma:

<http://pornel.net/iTunes-icc-gamma.png>

~~~
meestaplu
How did you make that image? If I had to, I'd create an awful custom profile
for my monitor and work with that in Photoshop et al, but that's kind of a
kludge. Did you use a tool to change the ICC profile behind it?

~~~
ryanisinallofus
So is this Chrome sucking at PNGs or my calibration?

<http://yfrog.com/hsrnnnp>

~~~
pornel
I think it's Chrome. It looks like it applied both ICC and gamma, but PNG spec
requires to pick only one of them.

