I wrote a little test app to load an image, resize it to all sizes smaller than the original, do a zoom blur on the resized image - that will cover all possible aspect ratios. I don't see the problem your sample shows.
Code:
UINT32 w, h;
HISSRC hSrc = is5_OpenFileSource(TEMP"me.jpg");
HGLOBAL hImg = is5_ReadImage(hSrc, &w, &h, 0, 0);
is5_CloseSource(hSrc);
for (UINT32 h2=h;h2>=10;h2--)
{
for (UINT32 w2=w;w2>=10;w2--)
{
POINT center = {w2/8, h2/8};
BYTE *pr = new BYTE[w2 * h2 * 3];
BYTE *prz = new BYTE[w2 * h2 * 3];
is5_ResizeImage((BYTE*)hImg, w, h, w * 3, pr, w2, h2, w2 * 3, 3, 0, 0);
is5_ZoomBlur(pr, w2, h2, 3, w2 * 3, prz, w2 * 3, .250, ¢er, 7 | 0);
is5_DrawRGB(dc.m_hDC, pr, w2, h2, w2 * 3, 0, 0, 0);
is5_DrawRGB(dc.m_hDC, prz, w2, h2, w2 * 3, w2, 0, 0);
delete [] pr;
delete [] prz;
}
}
GlobalFree(hImg);
That will take a looonnnng time to run, if your image image is larger than a few pixels...