By Hannes Marais and Tom Rodeheffer

Dr. Dobb's Journal January 1999

Initialize the differential to 1/scale;
Initialize the accumulated_differential to 0;
Get the first original pixel;
Do
  Copy original_pixel to next_resized_pixel;
  if (int)(accumulated_differential + differential) > 
    (int)accumulated_differential then
       Get next original pixel;
  accumulated_differential += differential;
while there are unprocessed original pixels.

Example 1: Original algorithm.

Back to Article


Copyright © 1999, Dr. Dobb's Journal