Преобразование jpeg с кодировкой base64 в png в React в браузере

У меня есть строка jpeg с кодировкой base64, которую я держу в состоянии в React. Я пытался понять, как преобразовать его в строку base64 в формате png на стороне браузера.

Я кратко рассмотрел sharp, но обнаружил, что для этого требуется среда node.js на стороне сервера. Я действительно не хочу писать свой собственный скрипт преобразования. Дальнейший поиск по npm ничего мне не дал.

Любая помощь в этом очень ценится.


person jumbot    schedule 08.08.2019    source источник
comment
Моя первоначальная мысль заключалась в том, чтобы нарисовать JPEG на холсте с помощью drawImage(), а затем вызвать toDataURL() на этом холсте. PNG является форматом по умолчанию при использовании toDataURL, поэтому вам даже не нужен аргумент для него.   -  person IceMetalPunk    schedule 08.08.2019
comment
@IceMetalPunk Это интересно, я изучу это. Спасибо. Пожалуйста, не стесняйтесь дать ответ, если вы думаете, что это решит эту проблему.   -  person jumbot    schedule 08.08.2019


Ответы (1)


Это не проверено, но вы должны иметь возможность установить base64 JPEG в качестве источника изображения, а затем нарисовать это изображение на холсте, используя context.drawImage; как только он появится на холсте, вы можете использовать canvas.toDataURL(), чтобы получить его PNG base64.

person IceMetalPunk    schedule 08.08.2019
comment
Спасибо, я проверил, и это работает отлично. Хорошее решение! - person jumbot; 08.08.2019