change image.tmpCanvas to direct instead of lazy init