sharp

高性能 Node.js 图像处理模块
授权协议 Apache-2.0
开发语言 JavaScript
所属分类 Web应用开发、 Node.js 扩展
软件类型 开源软件
地区 不详
投 递 者 费明诚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

sharp 是一个高性能的 Node.js 模块,典型用例是将常见格式的大图像转换为较小的、对网络友好的 JPEG、PNG、WebP 和不同尺寸的 AVIF 图像。由于使用了 libvips 库,调整图像大小的速度通常比使用 ImageMagick 和 GraphicsMagick 快 4 到 5 倍。

颜色空间、嵌入的 ICC 配置文件和 alpha 透明通道都得到了正确处理,Lanczos 重采样可确保不会因速度而牺牲质量。除了图像调整大小外,还可以进行旋转、提取、合成和伽马校正等操作。

大多数运行 Node.js >= 12.13.0 的 macOS、Windows 和 Linux 系统不需要任何额外的安装或运行时依赖项。

例子

npm install sharp
const sharp = require('sharp');

回调

sharp(inputBuffer)
  .resize(320, 240)
  .toFile('output.webp', (err, info) => { ... });

Promise

sharp('input.jpg')
  .rotate()
  .resize(200)
  .jpeg({ mozjpeg: true })
  .toBuffer()
  .then( data => { ... })
  .catch( err => { ... });

Async/await

const semiTransparentRedPng = await sharp({
  create: {
    width: 48,
    height: 48,
    channels: 4,
    background: { r: 255, g: 0, b: 0, alpha: 0.5 }
  }
})
  .png()
  .toBuffer();

Stream

const roundedCorners = Buffer.from(
  '<svg><rect x="0" y="0" width="200" height="200" rx="50" ry="50"/></svg>'
);

const roundedCornerResizer =
  sharp()
    .resize(200, 200)
    .composite([{
      input: roundedCorners,
      blend: 'dest-in'
    }])
    .png();

readableStream
  .pipe(roundedCornerResizer)
  .pipe(writableStream);
  • sharp 是 Node.js 平台上相当热门的一个图像处理库,其实际上是基于 C 语言编写 的 libvips 库封装而来,因此高性能也成了 sharp 的一大卖点。sharp 可以方便地实现常见的图片编辑操作,如裁剪、格式转换、旋转变换、滤镜添加等。当然,网络上相关的文章比较多,sharp 的官方文档也比较详细,所以这不是本文的重点。这里主要是想记录一下我在使用 sharp 过程中遇到的一些稍

  •         #region websocket-sharp         public void websocket_sharp() {             try {                 var url = "ws://121.40.165.18:8800";                 using (var ws = new WebSocketSharp.WebSoc

  • FaceBook 是最近美国相当走红的社区网站,几乎每个学生在上面都有个账号,而上面提供了许多的服务。 Facebook-Sharp 已经帮你将这些服务包装成组件,让你可以使用 FaceBook 上提供的服务。 Inside FaceBook: http://www.yeeyan.com/groups/show/insidefacebook Facebook Developer Toolkit:h

  • 市场目前公开可处理图片的有七牛云,阿里云等大厂进行图像处理,应某S3Store 业务需求,自行解决图片处理;这里结合node 的sharp库,很好用 npm 地址:sharp - npm 教程API地址:sharp - High performance Node.js image processing 首先进行图片正则规则匹配   for (const rule of rules) {     c

  •  C#(C Sharp)是一门编程语言,是DoNet的核心语言,是用来和计算机对话沟通的语言。 编程过程就是对计算机下命令的过程,这些命令写出来就是代码。 Visual Studio 是DoNet软件开发的编程软件,编程软件是方便开发软件的工具,编程不完全依赖于开发工具,但有开发工具能方便很多。 打开VS - 选择语言 - 选择框架 - 选择文件类型 - 选择文件存储位置 -命名 。 控制台应用程

  • ‣ 国民输入法,6亿用户输入首选‣ App Store 年度最佳应用‣ 蝉联免费榜冠军12天====== 炫酷功能 ======‣ 卓越拼音语音手写笔画文字扫描跨屏输入‣ 词库强大、本地深度学习模型、流畅高效,搜狗总能懂你‣ 快捷分享图片影音资讯,让表达更简单‣ 炫动皮肤、DIY按键音壁纸,键盘你做主‣ 随心定制皮肤背景、按键形状、动效、字体、按键音 ‣ 小字花漾字图片字,玩出文字花样‣ 全量Em

  • USBSharp 让您的手机变成一个大容量、便携式的无线U盘,方便、高效的管理您的文件! 如果您有长期带着数据线或频繁插拔SD卡的烦恼,那就请使用USB Sharp,USB Sharp可以 让你消除以上烦恼! 注意事项: *手机和电脑共享必须通过同一个无线路由器 *只有在软件共享界面才能通过浏览器共享文件 具有以下功能: **** 方便,高效的共享文件 * 支持WIFI文件共享 (可实现上传、下载

  • 是的,我会C#语言。C#是一种常用的面向对象的编程语言,主要用于开发Windows操作系统和应用程序,也可用于开发网站和游戏。它是基于C和C++语言的,但比这两种语言更安全、简单易用,因此常被广泛使用。

  • 今天在 www.cnblogs.com 看到了这么一篇文章《[你必须知道的.NET] 第六回:深入浅出关键字---base和this》【AndTao】的文章,写的不错。 最后发现基本上是对《Effective C#》的翻译重新组织了一下,不过加入了作者的理解,不错的想法。自己也想看看,搜索了一下,总结一下: (一下资料来源于 CodeProject.com) http://www.codeproj

  • 各种集合         集合可分为两类:泛型集合和非泛型集合                 泛型集合使用之前要先引入一个命名空间                         System.Collections.Generic                 非泛型集合使用之前要先引入一个命名空间                         System.Collections    

  • 最近被这C SHARP烦了又烦,弄得真是不扣所措:又是你所用的是一个不可更新的查询;又是Machine To Application节点错误,这一般是由IIS造成的,请检查IIS配置文件是否正确;又是函数入口不是一个;又是数据类型不可以强制转换,搞得我花了一天的时间查了一个更新操作,还是没什么结果;......哎,选择了IT,也许就意谓着选择了最吃苦的活吧,但每天还是做得乐此不疲,人有时真是傻,其

  • 你好!如果你想在 C# 中搭建一个项目,可以按照以下步骤进行: 首先,打开你的 Visual Studio 软件,在文件菜单中选择“新建”,然后选择“项目”。 在弹出的对话框中,选择 C# 作为你的项目类型,然后选择一个模板,比如控制台应用程序或者 WPF 应用程序。 接着,你可以输入你的项目名称和保存路径,然后点击“确定”。 现在你的项目就搭建完成了,你可以在 Visual Studio 中开始

  • C# 是一种流行的编程语言,可以用于开发各种类型的应用程序,包括桌面应用程序、Web 应用程序、移动应用程序等。以下是一些常见的 C# 开发框架: .NET Framework:.NET Framework 是一个经典的 C# 开发框架,它提供了大量的类库和工具,可用于开发各种类型的应用程序。 .NET Core:.NET Core 是一个跨平台的 C# 开发框架,它可以在 Windows、Lin

 相关资料
  • 我正在Visual Studio中开发一个AWS Lambda函数,该函数需要快速调整图像大小。最初,我使用ImageMagick来调整这些图像的大小,但整个过程需要太长的时间来处理。ImageMagick的替代品似乎是另一个图像库Sharp。夏普可能会使用原生AWS Lambda代码,以便更快地调整图像大小。根据这篇文章,Sharp需要在EC2实例中构建才能做到这一点(https://githu

  • 我在试着读书。tiff图像。我知道我不能阅读ImageIO提供的tiff文件。阅读并了解JAI API的支持。tiff图片,但我不会使用JAI API。那么JAI API还有其他选择吗?我在哪里可以买到JAI API?

  • 大多数图像处理和操作技术可以使用两个库进行有效的处理:Python Imaging Library (PIL) 和 OpenSource Computer Vision (OpenCV)。 下面来简单介绍一下这两个库。 Python 图像库 Python 图像库, 全称为 Python Imaging Library,简称PIL,是Python图像操作的核心库之一。遗憾的是,PIL 的开发工作已经

  • Tensorflow封装了很多图像处理的操作,包括读取图像、图像处理、写图像到文件等等。在批量处理图像时,Tensorflow要求所有的图像都要有相同的Size,即$$(height,width,channels)$$。 读取图像 %matplotlib inline import tensorflow as tf import numpy as np #mil.use('svg') mil.us

  • 安装扩展 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image 图像操作 下面来看下图像操作类的基础方法。 打开图像文件 假设当前入口文件目录下面有一个image.png文件,如图所示: 使用open方法打开图像文件进行相关操作: $image = \think\Image::open('./image.png');

  • 问题内容: 我有一个数据模型,该数据模型在一个实体和其他11个实体之间具有一对多关系。这12个实体一起代表一个数据包。我遇到的问题是与这些关系的“许多”方面发生的插入次数有关。其中一些可以具有多达100个单独的值,因此要将一个完整的数据包保存在数据库中,最多需要500次插入。 我正在将MySQL 5.5与InnoDB表一起使用。现在,通过测试数据库,我发现在处理批量插入时,它每秒可以轻松地每秒进行

  • 我从http://docs.oracle.com/javaee/7/tutorial/doc/servlets012.htm Java EE为servlet和过滤器提供异步处理支持。如果servlet或过滤器在处理请求时达到潜在的阻塞操作,它可以将该操作分配给异步执行上下文,并将与请求相关联的线程立即返回到容器,而不生成响应。阻塞操作在不同线程的异步执行上下文中完成,该线程可以生成响应或将请求分派

  • 主要内容:GD 库PHP 提供了丰富的图像处理函数,主要包括: 函数 描述 gd_info() 取得当前安装的 GD 库的信息 getimagesize() 获取图像信息 getimagesizefromstring() 获取图像信息 image_type_to_extension() 获取图片后缀 image_type_to_mime_type() 返回图像的 MIME 类型 image2wbmp() 输出WBM