jxbma
asked on
Whats the best way to scale a windows bitmap?
I'm working with a windows C++ app and need to apply scaling to a bitmap image which is loaded in memory.
(Windows BITMAP)
What is the best way to scale a bitmap image?
I have a windows BITMAP which I want to apply scaling to.
I do have access to the boost and opencv libraries as part of this project.
Thanks,
JohnB
(Windows BITMAP)
What is the best way to scale a bitmap image?
I have a windows BITMAP which I want to apply scaling to.
I do have access to the boost and opencv libraries as part of this project.
Thanks,
JohnB
ASKER
Zoppo:
Thanks for the feedback.
Our app does image analysis. Client apps will pass us either an HBMP or LPBITMAP.
The analysis is part of a library (which will eventually get wrapped).
We don't have access to HDC's from within the library.
Is there another way to try to scale the bitmap through the windows API, or through openCv?
Thanks,
JB
Thanks for the feedback.
Our app does image analysis. Client apps will pass us either an HBMP or LPBITMAP.
The analysis is part of a library (which will eventually get wrapped).
We don't have access to HDC's from within the library.
Is there another way to try to scale the bitmap through the windows API, or through openCv?
Thanks,
JB
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
a common and easy way to do this is to create another in-memory bitmap of the wanted (scaled) size and draw the original bitmap into the new one using ::StretchBlt. To do so both bitmaps need to be selected into memory device contexts. Here's some (untested) code how this could look like:
Open in new window
It might be you're not satisfied with the quality of the scaled bitmap - if so you should consider doing similar things using GDI+, compard with GDI it has improved drawing and smoothing/antialiasing functionality.Hope that helps,
ZOPPO