介绍

你需要将SVG文件转换为PNG、JPEG、TIFF、WEBP 和 HEIF 格式吗?本文将指导你如何转换为所有这些类型的格式。

我们将使用 Node.js 和Sharp npm 包来完成大部分繁重的工作。

目录

  1. 安装 Sharp Npm 包

  2. SVG 转 PNG

  3. SVG 转 JPEG

  4. SVG 转 TIFF

  5. SVG 转 WEBP

  6. SVG 转 HEIF

安装Sharp Npm Package
首先你需要安装 npm 包。你可以使用下面的 npm 或 yarn 命令安装:

Npm

1$ npm install sharp --save

Yarn

1$ yarn add sharp

现在我们已经准备好开始编写一些代码并转换图像了!

SVG 转 PNG

对于第一个例子,我们将 SVG文 件转换为可移植网络图形(PNG)文件格式。确保你在项目目录的根目录中有一个可用的 SVG 文件。

这是完整的代码:

1// Node.js 2 3const sharp = require("sharp") 4 5sharp("file.svg") 6    .png() 7    .toFile("new-file.png") 8    .then(function(info) { 9        console.log(info)10    })11    .catch(function(err) {12        console.log(err)        13    })

让我们分解代码的每个部分:

  1. 首先,导入 sharp 包并将其保存在 sharp 变量中。

  2. 然后,我们用 sharp 包来读取我们的 file.svg 文件,将其转换为 PNG 并使用 .toFile() 函数将新的 PNG文件写入你的目录。

  3. sharp 方法是一个 promise,我们用它来获取文件的 info。

  4. 最后,我们用 .catch() 方法来捕获并 console.log() 所有错误。

当你运行代码时,应该得到类似的输出:

1{2    format: 'png',3    width: 2500,4    height: 527,5    channels: 4,6    premultiplied: false,7    size: 471948}

你应该能够在项目目录中看到新的 PNG 文件。

还可以将其他选项传递给 .png() 方法来更改输出图像。这些包括压缩级别、质量、颜色等。你可以在文档中查看它们。

SVG 转 JPEG

现在,让我们将 SVG 文件转换为 JPEG 格式。确保项目目录的根目录中有一个 SVG 文件可供使用。

这是完整的代码:

 1const sharp = require("sharp") 2sharp("file.svg") 3    .png() 4    .toFile("new-file.jpg") 5    .then(function(info) { 6        console.log(info) 7    }) 8    .catch(function(err) { 9        console.log(err)10    })

当运行代码时,你应该得到类似的输出:

json { format: 'jpg', width: 2500, height: 527, channels: 4, premultiplied: false, size: 47194 }

你应该在项目目录中看到新的JPEG文件。

文档:http://sharp.pixelplumbing.com/en/stable/api-output/#png。

SVG 转 TIFF

接下来,让我们将SVG文件转换为标记图像文件格式(TIFF)文件。确保你在项目目录的根目录中有一个我们可以使用的SVG文件。

这是完整的代码:

 1const sharp = require("sharp") 2 3sharp("file.svg") 4  .tiff() 5  .toFile("new-file.tiff") 6  .then(function(info) { 7    console.log(info) 8  }) 9  .catch(function(err) {10    console.log(err)11  })

当你运行代码时,应该得到类似的输出:

1{2    format: 'tiff',3    width: 2500,4    height: 527,5    channels: 3,6    premultiplied: false,7    size: 657788}

你应该在项目目录中看到新的TIFF文件。

文档:http://sharp.pixelplumbing.com/en/stable/api-output/#tiff。

SVG到WEBP

接下来,将 SVG 文件转换为 WEBP 文件格式。确保你在项目目录的根目录中有一个我们可以使用的SVG文件。

这是完整的代码:

1const sharp = require("sharp") 2 3sharp("file.svg") 4  .webp() 5  .toFile("new-file.webp") 6  .then(function(info) { 7    console.log(info) 8  }) 9  .catch(function(err) {10    console.log(err)11  })

输出:

1{2  format: 'webp',3  width: 2500,4  height: 527,5  channels: 4,6  premultiplied: false,7  size: 356008}

你应该在项目目录中看到新的WEBP文件。

文档:http://sharp.pixelplumbing.com/en/stable/api-output/#webp。

SVG到HEIF

最后一个例子,让我们将 SVG 文件转换为高效图像文件(HEIF)格式。确保你在项目目录的根目录中有一个可用的SVG文件。

这是完整的代码:

 1const sharp = require("sharp") 2 3sharp("file.svg") 4  .png() 5  .toFile("new-file.heif") 6  .then(function(info) { 7    console.log(info) 8  }) 9  .catch(function(err) {10    console.log(err)11  })

你还应该在项目目录中看到新的HEIF文件。

文档:http://sharp.pixelplumbing.com/en/stable/api-output/#png。

结论

希望本文能帮助你完成编码工作!

原文:https://coderrocketfuel.com/article/convert-a-svg-image-to-png-jpeg-tiff-webp-and-heif-formats-in-node-js

©著作权归作者所有:来自51CTO博客作者mb5ff980b461ced的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Linux学习:unix的标准化的实现(Linux中各种限制-数据类型-各种标准
  2. Linux学习:文件IO(不带缓冲区),原子操作概念
  3. 从.env文件中为NodeJS加载环境变量[每日前端夜话0xA9]
  4. Centos给文件设置了777权限仍不能访问解决方案
  5. Linux根目录分区大小调整教程
  6. 如何设计一个牛逼的文件搬运工?
  7. 共享文件夹
  8. 从一份定义文件详解ELK中Logstash插件结构
  9. Redhat 7 LVM xfs文件系统修复

随机推荐

  1. Android实现在列表List中显示半透明小窗
  2. [Android] Android使用序列化接口Parcela
  3. Android生成Market分享链接
  4. Android(安卓)进阶学习:事件分发机制完全
  5. Android(安卓)进阶之刁钻问题汇总
  6. Android(安卓)驱动跟系统开发 1. 一个简
  7. Android(安卓)Menu的应用
  8. Android(安卓)ConstraintLayout 使用
  9. Android性能监测小工具——安测试
  10. Android(安卓)中的 Service 全面总结