很强大,图片转ico库,也可以转换各种图像格式

大家好我是辉子,遇到有用的东西就记录下来,也希望和您成为朋友。关注 公众号: 【罗米笔记】,有更好的笔记会及时更新,

昨天想找下直接在js转ico的库,以后用到项目中,就发现了这个,记录下来留着使用

Sharp库是一个用于处理图像的Node.js库,它提供了一组功能强大且易于使用的API,可以用于读取、写入和转换各种图像格式。Sharp库支持多种常见的图像格式,包括JPEG、PNG、GIF、BMP等,并且可以在不损失质量的情况下对图像进行缩放、旋转、裁剪等操作。此外,Sharp库还支持流式处理,可以在处理大型图像时节省内存。总之,Sharp库是一个非常实用的Node.js图像处理库,可以帮助开发者轻松地完成各种图像处理任务。

是在nodejs环境中使用,主要用在服务器端,可以使用nest进行测试 用法: npm install sharp

js 复制代码
// 转换图片格式并设置大小, 可以转换成多种图片格式 。
const inputImagePath = '/Users/wanghui/Desktop/test/images/1.png';
const outputIcoPath = './1.jpg';
const sharpImage = sharp(inputImagePath);
const resizeImage = sharpImage.resize(200, 200);
await resizeImage.toFile(outputIcoPath);
js 复制代码
// 通过这样的方式进行转化 
const transformer = sharp()
  .resize(200)
  .on('error', function (err) {
    console.log(err);
  });

const readableStream = fs.createReadStream(inputImagePath);
const writableStream = fs.createWriteStream(outputIcoPath);
readableStream.pipe(transformer).pipe(writableStream);
js 复制代码
// 输入生成的图片,buffer格式,可以转成base64输出
await sharp({
  // Create a 300x200 RGBA image with a red background
  create: {
    width: 300,
    height: 200,
    channels: 4,
    background: { r: 255, g: 0, b: 0, alpha: 0.5 },
  },
})
  // Use PNG format
  .png()
  // Convert to a buffer
  .toBuffer();
js 复制代码
// 转化gif为webp
await sharp('./2.gif', { animated: true }).toFile('out.webp');
js 复制代码
// 生成图片
const input = Uint8Array.from([255, 255, 255, 0, 0, 0, 255, 255, 0]); // or Uint8ClampedArray
const image = sharp(input, {
  // because the input does not contain its dimensions or how many channels it has
  // we need to specify it in the constructor options
  raw: {
    width: 3,
    height: 1,
    channels: 3,
  },
});
await image.toFile('./my-two-pixels.png');
js 复制代码
// 生成文字图片
await sharp({
  text: {
    text: `<span foreground="red">Red!</span><span background="cyan">blue</span>`,
    font: 'sans',
    rgba: true,
    dpi: 300,
  },
}).toFile('text_rgba.png');

当然还有很多的用法及参数。可以参照官网。这个适合做工具类的图片转换,当然也可以用到其他的场景中,就看是怎么使用了

github: github.com/lovell/shar...

相关推荐
村头的猫6 分钟前
如何通过 noindex 阻止网页被搜索引擎编入索引?
前端·经验分享·笔记·搜索引擎
oil欧哟14 分钟前
🙂我用 TS 实现了一个 OpenAPI 转 MCP 工具,让 AI 工具调用更简单!
前端·人工智能·mcp
cyc&阿灿16 分钟前
深度解析SpringBoot自动化部署实战:从原理到最佳实践
spring boot·后端·自动化
JohnYan19 分钟前
Bun技术评估 - 10 Testing
javascript·后端·bun
YYsuni23 分钟前
Google Translate 导致的 React 页面崩溃
前端
会一丢丢蝶泳的咻狗23 分钟前
uni-app安卓端强制更新apk包
android·前端·uni-app
逝水如流年轻往返染尘24 分钟前
CSS基础学习1
前端·css·学习
桦说编程24 分钟前
配置快照实现之持久化数据结构
java·后端·函数式编程
Hilaku25 分钟前
我踩爆了 CSS Module 的所有坑,别再被骗了
前端·css·react.js
北城笑笑27 分钟前
Server 11 ,⭐通过脚本在全新 Ubuntu 系统中安装 Nginx 环境,安装到指定目录( 脚本安装Nginx )
linux·运维·前端·nginx·ubuntu