Проблема в том, что у сanvas есть только метод toDataURL() который позволяет создать png который уже можно применять как хочешь. Но тогда опять же возвращаемся к лимиту DataURL.... То есть ели нужно получить картинку большой кнопки из атласа, то можно просто не поместится в этот лимит. Конечно можно попробовать определить лимит текущего браузера и попробовать загрузить кнопку как набор более мелких картинок и визуально слепить их вместе. Но это уже какой-то бред
Хотя если попробовать использовать сами сanvas как изображение для кнопок и тп...