>>14
普通にCやC++で書いても、AcrobatやImaging程度の速度は出る。

素直に、縮小画像の各ピクセルに対応する元の2値画像の

矩形内のbit1の数/矩形の面積

をグレイスケールの輝度値にするだけでOK。もちろん、分母も分子もdouble値

大昔に整数型演算だけで無理やりやったこともあったが、今は変な工夫はしないで
浮動小数点演算も気にせず使っている。工夫しないといっても、コードチューニング
くらいはするけれど。縮小倍率は浮動小数点で任意倍率でもいいと思う。