I do not want to use GDI + DrawImage due to performance issues. What other ways can I achieve image changes with decent quality - at least linear or cubic interpolation?
You can use SetStretchBltModewith customization HALFTONE, but you are likely to encounter the same speed issues that GDI + encountered - anti-aliasing always comes at the expense of.
SetStretchBltMode
HALFTONE