Проверил ваш скрипт. Именно с image/jpeg не работает. Если закодировать javascriptом в png, то все хорошо.
Из этого вывод: проблема не в base64_decode, проблема, скорее всего в кодировании браузером jpeg.
Если так нужен jpeg, как выходной формат, то может лучше конвертировать на сервере с помощью того же GD?