reducing potential for flickering preview using canvas to draw image updates