很强大,图片转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...

相关推荐
想用offer打牌3 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX5 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法5 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端