use canvas,fix #4