מודול עיבוד תמונות מהיר ומהיר ב-Node.js

Sharp הוא מודול עיבוד תמונה המשתמש בספריית libvips כדי לספק עיבוד מהיר לפרויקטים של Node.js.

Sharp הוא מודול תמונה לעיבוד מהיר עבור פרויקטים של Node.js המופעלים על ידי ספריית עיבוד התמונה של libvips. בשל תוספת זו, ל-Sharp כמו שהשם מרמז יש כוח עיבוד במהירות גבוהה מכיוון שהוא מאחסן רק כמה אזורים של נתוני התמונה הלא דחוסים בזיכרון ומפנה הרבה מכוח המעבד המשומש ומטמון L1/L2/L3

הספרייה גם מוודאת שלא נוצרים תהליכי צאצא ונתמכים בתהליכי אסינכרון או המתנה. כמודול לעיבוד תמונה בקוד פתוח, Sharp תומך במספר פורמטים של תמונה ובנתוני פיקסלים גולמיים לא דחוסים גם כן. לביצועים מיטביים ודא שאתה משתמש ב-Node.js גרסה 10 ומעלה.

Previous Next

תחילת העבודה עם Sharp

הדרך המומלצת להתקין את Sharp דרך NPM. אנא השתמש בפקודה הבאה כדי להתקין אותו.

התקן את Sharp דרך NPM

 npm install sharp 

שנה את גודל התמונות באמצעות API של JavaScript בחינם

ספריית קוד פתוח מאפשרת ל-JavaScript מפתחים לשנות תמונות באופן מתכנת. Sharp מאפשר לך להמיר פורמטי תמונה גדולים לגדלים קטנים יותר התואמים ליישומי אינטרנט שונים. בעזרת הספרייה החדה, Sharp יש 4 עד 5 פעמים מהירות עיבוד תמונה מהר יותר מאשר ממירים אחרים בפורמט תמונה כגון ImageMagick או GraphicsMagick. שארפ מבטיח כי איכות התמונה אינה נפגעת על ידי מודול דגימת לרנסס.

קרא ושנה גודל תמונות באמצעות JavaScript

const transformer = sharp()
  .resize({
    width: 200,
    height: 200,
    fit: sharp.fit.cover,
    position: sharp.strategy.entropy
  });
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
  .pipe(transformer)
  .pipe(writableStream)

עיבוד תמונה באמצעות API של JavaScript בחינם

הספרייה החדה מאפשרת למפתחי תוכנה לעבד את התמונה במסגרת JavaScript. ניתן לבצע פעולות תמונה כגון שינוי גודל תמונה, סיבוב, חילוץ, תיקונים וקומפוזיטציה. Sharp תואם למערכות MacOS, Windows ולינוקס ואינו דורש התקנות נוספות בעת שימוש ב-Node.js גרסה 10 ומעלה.

חלץ תמונה מאזור באמצעות JavaScript

sharp(input)
  .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
  .resize(width, height)
  .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
  .toFile(output, function(err) {
    // Extract a region, resize, then extract from the resized image
  });

סובב תמונה באמצעות JavaScript API

const rotateThenResize = await sharp(input)
  .rotate(90)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .toBuffer();
const resizeThenRotate = await sharp(input)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .rotate(90)
  .toBuffer();

עבודה עם מטא נתונים של תמונה באפליקציות JavaScript

ספריית הקוד הפתוח Sharp כללה תמיכה מלאה בעבודה עם Image Metadata בתוך יישומי JavaScript. הספרייה מספקת גישה מהירה למטא נתונים של תמונה ללא פענוח נתוני פיקסלים דחוסים. זה כלל תמיכה במספר מאפיינים חשובים כמו גודל תמונה, פורמט, גובה, רוחב, עומק, צפיפות, שטח, רמות, רקע, exif, hasprofile, עמוד ועוד רבים. אתה יכול גם לגשת בקלות לסטטיסטיקה של תמונה שמקורה בפיקסלים עבור כל ערוץ בתמונה כגון min, max, sum, mean, חדות, אנטרופיה ועוד רבים.

גישה למטא נתונים של תמונה באמצעות JavaScript

const image = sharp(inputJpg);
image
  .metadata()
  .then(function(metadata) {
    return image
      .resize(Math.round(metadata.width / 2))
      .webp()
      .toBuffer();
  })
  .then(function(data) {
    // data contains a WebP image half the width and height of the original JPEG
  });
 עִברִית