Let's say I have an image in a CBitmap with a color that signifies a transparent pixel (in my case it's magenta). Can I create a HRGN or a CRgn for the image that includes all the pixels except the magenta ones?
Can I create a HRGN/CRgn by excluding all the magenta pixels in a given image?
701 Views Asked by sashoalm At
2
There are 2 best solutions below
0
Roger Lipscombe
On
At its simplest, you need to call CreateRectRgn multiple times, passing a single-pixel rectangle for each magenta pixel. You'd then combine these regions together using CombineRgn.
Obvious optimisations include:
- using a DIB section, rather than
GetPixelto scan the original image. - looking for single-row runs of the same pixel, so that you're not combining 1 x 1 regions.
- looking for multi-row blocks of the same pixel, so that you're not combining 1 x n regions.
That said: why do you need an HRGN? Could you get away with just transforming the original bitmap into a mask bitmap?
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in WINAPI
- Make screenshot of DirectX window that is hidden and doesn't have focus
- Is it valid to mutilayered a critical section?
- Implementing callback function for dialog-based application
- Where is the 'EnablePinning' property in the ribbon framework's recent items?
- Confusion about CTRL_SHUTDOWN_EVENT handling in DLLs and WM_QUERYENDSESSION
- Standard control transparency. Possible?
- Disable all power options from the Start menu
- call Win32 API in flex to set Window Display Affinity
- heap error after changing from new allocation to smartpointer
- Win API - Delete all files except some
- Finding the default application for a particular file name extension (Even when served by a metro app)
- How do I declare OutputDebugStringA without windows.h macros?
- WPF giving maximize,minimize,resize control to child window
- Can a dialog intercept drag'n'drop messages passed to its controls?
- WinApi and work with several domains
Related Questions in MFC
- Cannot "Go To Definition" in Visual C++ 2013
- reset mdi child view position
- Add a picture to Picture Control in a dialog box (error RC2108: expected numerical dialog constant)
- Background color for controls in MFC C++ is unable to set
- variable global const "macros" in C++ and optimal design patterns
- Converting long double to CString
- postmessage and message loop in different thread
- How to convert CString to long? VC++
- Can a dialog intercept drag'n'drop messages passed to its controls?
- Can I close (note, not terminate) a user process from a service by its PID?
- How can I have a multi-line item in a ListControl MFC?
- Getting the messages back to the same command line from where the MFC application was launched
- MFC - How to set the toolbar title?
- MFC SetTitle() causing weird debug assertion
- Application logs on the command prompt from where application is being launched
Related Questions in TRANSPARENT
- Navigation bar draw over content when using translucent status
- Transparent Activity in Android
- labeling and saving transparent layer in photoshop
- Transparency in Background Picture
- JLabel absorbs background from my mouse pointer coordinates JAVA
- How to hide scrolled content under fixed transparent header
- align transparent div over carousel background image in bootstrap
- Collapsed navbar is covering content behind it in bootstrap 3.3.4
- CSS Radial Transparency Center Only
- Make element transparent through multiple parent elements?
- android image serialization transparent png
- Android: AppBarLayout gradient background
- imageresizer transparent white png
- NetLogo 3D: Transparent Patches
- Can Telerik Themes be assigned to the BackColor property of elements?
Related Questions in REGIONS
- HBase table is empty, but regions are increased
- WPF PRISM - Display multiple pop-up view on the same time
- Prism RequestNavigate not working in a Popup window
- Marionette: get single instance of a layout view
- backbone modal with Marionette views - subview events not getting fired
- Hazelcast data isolation ("Memory Regions")
- PRISM + MEF -- Can't get regions to work properly
- Prism RegionAdapter - Removing then Adding View
- MEF: One region, multiple views to display at the same time
- Can I create a HRGN/CRgn by excluding all the magenta pixels in a given image?
- How To Create Hover Regions On Sprite?
- how can monitor many regions in xcode?
- Override Marionette.Region's getEl method in Backbone.Marionette
- C# region settings confused
- How to make Drupal 6 print Region DIV wrappers
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The only way to do this is to scan over the image, row at a time, scanning pixels and keep on combining pixel ranges into a HRGN object.
You will want to do this with a DIBSection as calling GetPixel is rather slow.