Мне нужно было преобразовать изображение SVG в png в проекте. Здесь записываются методы, которые я пробовал.

Мой SVG использует собственный встроенный шрифт.

Способ 1, с использованием острых

sharp(inputBuffer)
  .resize(1000, 1000)
  .png()
  .toFile('output.png', (err, info) => { ... });

Он поддерживает только шрифт, установленный в ОС. Может быть сложно получить правильное имя для установленного вами шрифта. Даже если я успешно заставлю его работать на своем компьютере с Windows, мне нужно будет сделать это еще раз, когда я отправлю этот код на компьютер с Linux на AWS. Это просто не стоит моего времени.





Хуже всего то, что он не поддерживает встроенный шрифт. Sharp использует librsvg для рендеринга шрифта, а это совсем другая система.



Таким образом, резкость не подходит для моего варианта использования.

Способ 2, используя безголовый браузер

Мое изображение SVG прекрасно отображается в любом браузере, Chrome, Firefox и Edge. Итак, я думаю, что это могло бы сработать, если бы я использовал безголовый браузер для отображения SVG в HTML, а затем сделал скриншот страницы в PNG. Это избавляет меня от хлопот по настройке env и загрузке правильного шрифта.

Кроме того, мой SVG не имеет прозрачного фона, поэтому метод скриншота работает для меня.