Fix: use image.complete to identify image that has already been loaded