Edges are seamed, performance optimizations

Using imageData manipulation instead of fillRect