I wrote a program to pick a color from the screen (takes a screenshot, then displays it fullscreen and gets the pixel color with MyBitmap.GetPixel()) and I would like to add a zoomed view of the area around the cursor to be more precise. I searched a lot on the web for different solutions:
  • I first tried to draw an image and set each pixel around the cursor to the according pixel in my image, and put this image in a pictureBox with a bigger size and SizeMode set to Stretch but unfortunately, the image is really blurry and that's not what I want.
  • Another way would be to create a lot of panels and make a square with it and then set their BackColor accourding to the pixel colors around the cursor.
    This would be really long (I don't want to create 36 panels). I could make a 2d array of System.Windows.Forms.Panel and place them but I think this would be very slow and I did not try it yet so I'm not even sure if it is possible.
  • Another way would be to draw an image with ratio 1:1 of my zoomed area and then scale it using GDI+ but I never used this and it would be complicated.

What solution would be the best considering my skills (I started coding in VB.NET 1 month ago) and also the performance of the program (zoom would be refreshed on MouseMove)?

I never created threads for a problem before but now I have absolutely no idea what would be the best solution. Thank you for helping me!