Skip to main content

sharp

高性能Node.js图片处理库。使用libvips最快速地调整JPEG、PNG、WebP、AVIF和TIFF图片大小。 Use when this capability is needed.

Ir a la instalación

Datos de origen

Repositorio
tomevault-io/skills-registry
Última actividad en el origen
28 de abril de 2026 a las 22:53
Idioma detectado de SKILL.md
chino
Estrellas
1
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
sharp
description
高性能Node.js图片处理库。使用libvips最快速地调整JPEG、PNG、WebP、AVIF和TIFF图片大小。 Use when this capability is needed.
metadata
{"author":"aidotnet"}
# Sharp Tool ## Description High-performance image processing for resizing, converting, and manipulating images. ## Source - Repository: [lovell/sharp](https://github.com/lovell/sharp) - License: Apache-2.0 ## Installation ```bash npm install sharp ``` ## Usage Examples ### Resize Image ```typescript import sharp from 'sharp'; // Resize to specific dimensions await sharp('input.jpg') .resize(800, 600) .toFile('output.jpg'); // Resize with aspect ratio preserved await sharp('input.jpg') .resize(800, null) // Width 800, auto height .toFile('output.jpg'); // Resize with fit options await sharp('input.jpg') .resize(800, 600, { fit: 'cover', // cover, contain, fill, inside, outside position: 'center' // center, top, right, bottom, left }) .toFile('output.jpg'); ``` ### Convert Format ```typescript // Convert to WebP await sharp('input.jpg') .webp({ quality: 80 }) .toFile('output.webp'); // Convert to AVIF (modern format) await sharp('input.jpg') .avif({ quality: 60 }) .toFile('output.avif'); // Convert to PNG with transparency await sharp('input.jpg') .png({ compressionLevel: 9 }) .toFile('output.png'); ``` ### Image Manipulation ```typescript // Rotate and flip await sharp('input.jpg') .rotate(90) .flip() .toFile('output.jpg'); // Blur and sharpen await sharp('input.jpg') .blur(5) .sharpen() .toFile('output.jpg'); // Grayscale and tint await sharp('input.jpg') .grayscale() .tint({ r: 255, g: 128, b: 0 }) .toFile('output.jpg'); // Crop await sharp('input.jpg') .extract({ left: 100, top: 100, width: 500, height: 300 }) .toFile('output.jpg'); ``` ### Add Watermark ```typescript async function addWatermark(input: string, watermark: string, output: string) { const image = sharp(input); const { width, height } = await image.metadata(); // Resize watermark const watermarkBuffer = await sharp(watermark) .resize(Math.round(width! * 0.2)) .toBuffer(); await image .composite([{ input: watermarkBuffer, gravity: 'southeast', blend: 'over', }]) .toFile(output); } ``` ### Generate Thumbnails ```typescript async function generateThumbnails(input: string, sizes: number[]) { const image = sharp(input); await Promise.all(sizes.map(size => image .clone() .resize(size, size, { fit: 'cover' }) .jpeg({ quality: 80 }) .toFile(`thumb-${size}.jpg`) )); } // Usage await generateThumbnails('photo.jpg', [64, 128, 256, 512]); ``` ### Stream Processing ```typescript import { createReadStream, createWriteStream } from 'fs'; // Process large images with streams createReadStream('large-input.jpg') .pipe(sharp().resize(1920, 1080).jpeg({ quality: 85 })) .pipe(createWriteStream('output.jpg')); ``` ## Tags `image`, `resize`, `convert`, `thumbnail`, `processing` ## Compatibility - Codex: ✅ - Claude Code: ✅ --- > Converted and distributed by [TomeVault](https://tomevault.io/claim/aidotnet) — claim your Tome and manage your conversions. <!-- tomevault:4.0:skill_md:2026-04-11 -->
Ver en GitHub