❔ Drawing a Border Around Certain Parts of a Bitmap
Howdy there, So I'm currently building an application in AvaloniaUI and I am trying to add a functionality where on a displayed bitmap, if you click on an area with a specific color it gets selected and a border get's drawn around all regions of any color selected, even if they aren't contiguous (Attached images show how this works). The issue that I am currently running into is that iterating through the entire image and using getPixel(x,y) and setPixel(x,y, color) is too slow and results in a significant delay. What I'm wondering is if I there are any alternate approaches I can use. I am already using the class provided by the top response here https://stackoverflow.com/questions/24701703/c-sharp-faster-alternatives-to-setpixel-and-getpixel-for-bitmaps-for-windows-f and although it is faster, it is still very noticeably slow.
If there are any bad practices that I am currently employing then I would also appreciate them being pointed out. Some of the stuff here is a rather tad strange since I didn't know if I was going to keep this or if I was going to rewrite this. I am also considering redoing it in C++ and/or instead keeping track of what parts of the image are what color in the initial loading stage in case that brings up any different/better methods of mdoing this. Thanks!
I am trying to teach myself C# and have heard from a variety of sources that the functions get and setpixel can be horribly slow. What are some of the alternatives and is the performance improvement