首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web工作者内部将SVG转换为PNG

Web工作者内部将SVG转换为PNG
EN

Stack Overflow用户
提问于 2016-04-19 08:40:34
回答 2查看 1.1K关注 0票数 9

我想将SVG转换为Web工作人员内部的PNG。我的问题是,DOM无法从工作人员内部访问,所以我不能将SVG绘制到画布或类似的地方。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-02 20:49:39

您可以使用拇指

代码语言:javascript
复制
import Thumbo, { Transfer } from "thumbo";

Thumbo.init().then(async () => {
  Thumbo.thumbnail(
    Transfer(await (await fetch("/path/to/img.svg")).arrayBuffer()),
    Thumbo.ImageFormat.Svg,
    20,
    20
  ).then((thumbnailBuffer) => {
    document.getElementById("img1").src = URL.createObjectURL(
      new Blob([thumbnailBuffer])
    );
  });

  Thumbo.thumbnailFromUrl(
    "https://example.com/image.svg",
    Thumbo.ImageFormat.Svg,
    20,
    20
  ).then((thumbnailBuffer) => {
    document.getElementById("img2").src = URL.createObjectURL(
      new Blob([thumbnailBuffer])
    );
  });
});

在引擎盖下,拇指使用Rust的tiny_skia & resvg库编译到一个Web组装模块中,在web工作者中呈现SVG并将其转换为PNG。见拇指芯拇指

演示▶️ 源代码

PS:我是“拇指”的作者

票数 2
EN

Stack Overflow用户

发布于 2016-04-19 10:25:48

例如,您可以手动解析SVG并根据它构建一个位图,但是(!)这显然是个小问题,因为您必须构建一个SVG解析器和一个PNG编写器,更不用说行和两种模式多边形填充的栅格化代码了。抗混叠,图案,矩阵,组合,混合和梯度支撑.可能是个不错的周末项目:)

但是,更重要的一点是:您只能通过使用常规上下文(无webworker)的内置工具或可选地设置基于服务器的服务来完成这一任务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36713054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档