[Image-SIG] downscaling by area averaging
Douglas Bagnall
douglas at paradise.net.nz
Fri May 6 04:00:04 CEST 2005
hi,
I've made a patch to resize by averaging pixels.
http://halo.gen.nz/pil/pil_area_average.patch
If people want it, I'll fix up the GCCisms, and make it work on other
than RGB images.
I wrote it for statistical analysis of images (to get the average
density of various areas).
For every size I tried it proved quicker and more accurate than the
antialias filter (which, OTOH, is more flexible).
Typical times resizing from 450 x 325 to 16 x 12 are:
NEAREST: 0.000022
BILINEAR: 0.000112
BICUBIC: 0.000192
AREA_AVERAGE: 0.001558
ANTIALIAS: 0.009321
(linux, athlon XP 2800+).
The results of this are here:
http://halo.gen.nz/pil/examples.html
Interestingly, the area averaged image is generally pixel perfect with
the Gimp's best resizing ("Cubic").
and finally, I just discovered that emacs can save files as syntax
highlighted html, so here is the guts of the patch in full colour:
http://halo.gen.nz/pil/AreaAverage_c.html
regards
Douglas Bagnall
More information about the Image-SIG
mailing list