I want do draw a reflection in C# (WinForms) of an image, so I need to be able to flip the image horizontally. I know I can do this with image.RotateFlip, but the problem with this approach is that I have to flip the image twice so I can draw it again the right side up on the next paint. Doing this twice per paint per image seems to be slow.
I would like to do the flip when I draw the image so I only have to flip it once, but I can't find any way to do this. Is this possible?
Another approach I've considered is somehow flipping the graphics object, drawing the image normally, and then flipping the graphics object back so that the next paint is correct. If this is faster than flipping the image twice, is it possible to do?
Also, I don't want to keep 2 images in memory, so I can't copy the image and flip the clone.