Мне нужно было преобразовать изображение 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 не имеет прозрачного фона, поэтому метод скриншота работает для меня.