Supports transparent image.

The engine assumed the source image must be opaque,
so it redraws the background instead of clearing the canvas,
this doesn't work for image with transparent parts.
Merge pull request #39 from b123400/transparent-image

Supports transparent image.