Найти описание формата GIF, разобраться, какой бит там отвечает за бесконечный повтор воспроизведения. Считать файл в память, заменить бит, сделать из байтов data-URI, показать картинку с src=этот_data_uri
FeeFort, другой вариант – попробуйте найти готовую библиотеку, чтобы разобрать GIF на кадры и показывать эту же анимацию на canvas – тогда получится её контролировать и отыграть лишь раз.
Сергей Соколов, был другой вариант: для гифки поставить display: none, а для последнего кадра поставить display: block
но вот гифка исчезает, а вторая картинка не появляется.
FeeFort, так это не универсальное решение, а для одного гифа нужно? Есть утилиты, напр. https://lcdf.org/gifsicle/ чтобы его из зацикленного сделать одноразоаым