@Brecht Van Lommel (brecht) I got your point, in the rest, now I will do some refactor of code (looks like from scratch))
It's not CPU intensive.
Yes and no. It true because when changing image, a new image should be loaded into memory, it's a cost operation (mostly for HDD/SSD). And false if image already loaded.