I need an alternative to the windows API StretchBlt function. It's too slow for my purposes. Please do not use 3rd party libraries such as GDI+ since my code has to be very compact (unless you can figure out how to compile GDI+ code which keeps the executable file size very small). Also, please do not use MFC specific code. The function will have the same parameters and return value as the Win API StretchBlt function.
There are a couple of assumptions you may make to speed up the algorithm.
1) The destination image will always be larger than the source (i.e we will always be expanding the image).
2) The destination image will always stretch by an equal factor in both width and height.
3) The stretch factor will always be in multiples of 0.25. So we may stretch by 1.25, 2.00, 2.50, 3.75 etc. but never 2.78
4) For the last parameter, the value will always be SRCCOPY
5) You can ignore the smoothing which the StretchBlt function uses using the SetStretchBltMode API. We will only be doing basic stretch with no smoothing.
If you can find existing code online which is much faster than StretchBlt, that's fine too.
The code MUST compile in VC++6 and the speed improvement must be atleast twice as fast in the worst case scenario.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).