(This is something I just found out this afternoon while trying to figure out why shrinking down my art for webcomic output in GIMP was yielding somewhat icky results--turns out they've been icky in Photoshop all along, too! The upshot is that from here on out, A* comics will have cleaner lines, and will load about 20% faster. :)
Image editing programs such as Photoshop and GIMP tend to have "Bicubic" (GIMP
calls it "Cubic") interpolation as the default filtering method for scaling image size up or down.
As far as I can tell, bicubic is generally thought to produce "smoother" scaled samples, but it may not be the best choice for webcomic work, perhaps particularly grayscale stuff. Bicubic interpolation
(excessive values), which creates ringing artifacts
(rings around edges), increasing acutance
(edge contrast). Phew!
So what I really want to use when rescaling is bilinear interpolation
(GIMP calls it "Linear," IrFanView
call it "Triangular"; note that when scaling down, IrFanView ignores your selected filter and always uses one that appears to be identical to Photoshop's bilinear), which has no overshoot.
Here's a comparison from Photoshop 4 (later Photoshops I know have a few more options; "Sinc" in GIMP still produces overshoot), scaling an image down to 25% size:
The difference is hard to see at 100% zoom, BUT not only are the edges cleaner using bilinear, the absence of ringing artifacts also results in a significantly smaller image file size. My old version of Photoshop doesn't do indexed PNGs, so I export as a 256 gray GIF, then convert that indexed image to an index PNG (indexed PNGs have better compression than indexed GIFs) with IrfanView
. The results:
Bicubic: 46.1 KB
Bilinear: 36.5 KB
That's a 21% file size optimization. Hm, also the little dark gray "smbhax.com" mark in the lower right corner comes out clearer under bilinear interpolation.
I should point out that this undershoot/overshoot/ringing stuff does not apply to strictly black and white work, since it only shows up against gray/colored backgrounds.
I would think bilinear would have some similar advantages over bicubic interpolation in color work, but I'm not working in color at the moment so I haven't checked it out.