1. 产品
  2.   图片
  3.   Node.js
  4.   Sharp
 
  

用于创建和转换图像的免费 Node.js API

开源 Node.js 库完全支持 Node.js 应用程序内的自动图像转换、调整大小、编辑旋转等功能。

图像处理是许多现代应用程序的基本方面,从 Web 开发到移动应用程序。当谈到 Node.js 中的高效高性能图像处理时,Sharp API 脱颖而出,成为领先的开源库。Sharp 是一个基于 libvips 库构建的开源高性能图像处理库。Sharp 以其速度快、内存占用低而闻名,旨在高效处理大规模图像处理任务。它因其易用性、广泛的格式支持和强大的功能而特别受开发人员的欢迎。它支持几个重要功能,例如动态生成个性化图像、图像调整大小、自动图像转换、裁剪或翻转图像等等。

对于希望将高性能图像处理整合到 Node.js 应用程序中的软件开发人员来说,Sharp API 是一个强大的工具。它支持一系列图像文件格式,包括 JPEG、PNG、WebP、TIFF、GIF、AVIF,甚至原始像素数据。这种多功能性使软件开发人员能够处理来自不同来源的图像,而不必担心兼容性问题。该 API 完全异步,这意味着它可以同时处理多个图像处理任务。这种非阻塞架构非常适合需要高吞吐量和可扩展性的应用程序。它结合了速度、效率和广泛的功能,使其成为需要实时图像处理、格式转换或复杂图像处理任务的项目的理想选择。

Previous Next

开始使用 Sharp

推荐通过 NPM 安装 Sharp。请使用以下命令进行安装。

通过 NPM 安装 Sharp

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

Node.js 应用程序中的自动图像处理

开发人员可以使用 Sharp 库来自动执行图像处理任务,例如生成缩略图、转换图像格式或应用水印。这对于需要一致处理大量图像的内容管理系统 (CMS)、电子商务平台和社交媒体应用程序特别有用。其广泛的转换功能使其成为构建自定义图像编辑器的合适基础。无论是创建基于 Web 的照片编辑器还是用于编辑图像的移动应用程序,Sharp 都提供了实现高级图像处理功能所需的工具。以下是一个例子,展示了如何在 Node.js 环境中调整图像的亮度和对比度。

如何在 Node.js 应用内调整图像的亮度和对比度?

sharp('input.jpg')
  .modulate({
    brightness: 1.2, // Increase brightness by 20%
    contrast: 1.5    // Increase contrast by 50%
  })
  .toFile('output.jpg')
  .then(() => console.log('Image brightness and contrast adjusted'))
  .catch(err => console.error('Error:', err));

Node.js 中的图像调整大小和优化

对于提供图像的 Web 应用程序,性能是关键。借助开源 Sharp 库,软件开发人员可以创建一项服务,该服务可自动调整和优化不同设备和屏幕尺寸的图像。例如,电子商务平台可以使用 Sharp 动态生成多个版本的产品图像(缩略图、中等尺寸图像和高分辨率图像)。这可确保用户无论使用哪种设备都能获得最佳图像质量和加载速度。这是一个简单示例,展示了软件开发人员如何在 Node.js 应用程序中加载和调整图像大小。

如何在 Node.js 应用程序内加载和调整 JPG 图像大小?

const sharp = require('sharp');

sharp('input.jpg')
  .resize({ width: 300 })
  .toFile('output.jpg')
  .then(() => {
    console.log('Image resized successfully');
  })
  .catch(err => {
    console.error('Error processing image:', err);
  });

内容管理系统中的自动图像转换

在博客或新闻网站等内容密集型平台中,图像通常有多种格式。开源 Sharp 库可以自动将这些图像转换为针对网络使用优化的标准格式。例如,将所有图像转换为 WebP 格式可以显著减小文件大小并缩短加载时间,而不会影响质量。这是一个非常强大的代码示例,展示了软件开发人员如何在 Node.js 应用程序中创建个性化图像。

如何在 Node.js 应用程序内创建个性化图像?

sharp({
  create: {
    width: 300,
    height: 200,
    channels: 4,
    background: { r: 255, g: 255, b: 255, alpha: 0.5 }
  }
})
  .composite([{ input: 'overlay.png', gravity: 'center' }])
  .toFile('output.png')
  .then(() => {
    console.log('Personalized image created');
  })
  .catch(err => {
    console.error('Error generating image:', err);
  });

支持多种图像格式

开源 Sharp 库支持多种图像文件格式,例如 JPEG PNG、TIFF、GIF,甚至 WebP 和 AVIF 等现代格式。这种多功能性使软件开发人员能够处理各种类型的图像,确保跨不同平台和设备的兼容性。

 中国人