Файл зачитывается как бинарный массив (ArrayBuffer), а дальше, зная формат PSD, то есть в каких байтах что находится, можно добыть из него слои и всё остальное. Потом это дело отрисовывается на канве. Это вкратце ) Под капотом - дохренища кода. Этот редактор несколько лет пилит в одно лицо некий программер.