描画と書き出し
getContext('2d')で描画用の文脈を取り、drawImageで画像を縮小・拡大して描けます。toBlobを使えば、PNGやJPEGとして書き出せます。
CSSの大きさとピクセル数は別
canvasのwidth・height属性が実際のピクセル数で、CSSのサイズは見た目の大きさです。ドット絵は、image-rendering:pixelatedを指定すると、拡大しても滲みません。高精細な画面では、devicePixelRatioも考慮します。
制限
キャンバスの最大サイズは、ブラウザや端末ごとに異なります。大きすぎると描画に失敗することがあります。別のオリジンの画像を描くと、toBlobがエラーになる場合があります。