Magnifying Glass

I wanted a magnifying glass effect for my articles on pixel art scaling (parts one and two), to show the difference between various algorithms.

There are a few jQuery plugins that do this, but I didn’t want to add external dependencies, and this was a good excuse to play with the canvas element.

I tried using drawImageto upscale part of the image, but browsers seemed to apply bilinear or bicubic interpolation by default, which resulted in a blurry mess.

Not all browsers support the imageSmoothingEnabled property, so I ended up implementing nearest-neighbor interpolation by hand.

Try dragging and dropping your own image file in there.