Как определить расширение картинки закодированного в base64_decode?
воспользоваться функцией php.net/manual/ru/function.getimagesizefromstring.php передав ей декодированные данные. Она вернёт массив с информацией об изображении и элемент с индексом 2 будет тип картинки значения которого расписаны тут php.net/manual/ru/image.constants.php а зная это можно самому подставить расширение.
Насколько мне известно, в начале строки должна быть подобная информация:data:image/gif;base64,
// EDIT
Если строка является конкретно репрезентацией изображения, тогдя я вижу единственный путь:
сохранить ее в бинарный формат и парсить заголовки получившегося файла.