Почему этот код не работает локально?
Подозреваю, что срабатывает защита безопасности. Если в канвас загружена картинка с локального диска, браузер не даст её экспортировать в дата-урл. Потому что считает, что картинка может содержать приватные данные. Нужно проксировать через сервер.
А вообще, надо смотреть в консоль - там скорее всего есть какие-то ошибки или сообщения.
Все работает. Картинки должны быть загружены с того же домена, что и сам скрипт.