This is not really anywhere near a reasonable answer but perhaps it will motivate better answers. I have upvoted the Texture
approach by use of polygons.
img = (* pick your desired graphics*)
g = Graphics[{}, ImageSize -> {400, 400}, Background -> Black];
Manipulate[
Row[{ic = ImageCompose[g, img, Scaled[{x, y}]],
ia = ImageAdd[ic,
msk = Graphics[Disk[{0, 0}, r], PlotRange -> Table[{-5, 5}, {2}],
ImageSize -> {400, 400}]],
ImageAdd[ic,
Rasterize[
Plot[x, {x, -5, 5}, GridLines -> Automatic,
GridLinesStyle -> Red, AspectRatio -> Automatic,
ImageSize -> {400, 400},
Epilog -> {EdgeForm[{Orange, Thickness[0.02]}],
Disk[{0, 0}, r]}]]]}], {x, 0, 1}, {y, 0, 1}, {r, 0.1, 3}]
I just picked a picture of Apollo 11 crew so adapt to whatever image dimensions of graphic and figure that is being overlayed. There are obvious issues with image adding of color images but in the event this can be framed out or as mentioned improved I present.
Again just an idea that I do not have time (or expertise) to refine at present but perhaps OP or others will find helpful.