Γρήγορη και γρήγορη μονάδα επεξεργασίας εικόνας στο Node.js

Το Sharp είναι μια μονάδα επεξεργασίας εικόνας που χρησιμοποιεί τη βιβλιοθήκη libvips για να παρέχει γρήγορη επεξεργασία για έργα Node.js.

Το Sharp είναι μια μονάδα εικόνας γρήγορης επεξεργασίας για έργα Node.js που τροφοδοτούνται από τη βιβλιοθήκη επεξεργασίας εικόνας libvips. Λόγω αυτής της προσθήκης, το Sharp όπως υποδηλώνει το όνομα έχει υψηλή ταχύτητα επεξεργασίας, καθώς αποθηκεύει μόνο μερικές περιοχές των δεδομένων ασυμπίεστης εικόνας στη μνήμη ελευθερώνοντας μεγάλο μέρος της χρησιμοποιούμενης ισχύος CPU και της προσωρινής μνήμης L1/L2/L3

Η βιβλιοθήκη διασφαλίζει επίσης ότι δεν δημιουργούνται θυγατρικές διεργασίες και υποστηρίζονται ασύγχρονες διαδικασίες ή διαδικασίες αναμονής. Ως μονάδα επεξεργασίας εικόνας ανοιχτού κώδικα, το Sharp υποστηρίζει πολλές μορφές εικόνας και ασυμπίεστα ακατέργαστα δεδομένα pixel. Για βέλτιστη απόδοση, βεβαιωθείτε ότι χρησιμοποιείτε Node.js έκδοση 10 και νεότερη.

Previous Next

Ξεκινώντας με το Sharp

Ο προτεινόμενος τρόπος εγκατάστασης του Sharp μέσω NPM. Χρησιμοποιήστε την παρακάτω εντολή για να το εγκαταστήσετε.

Εγκαταστήστε το Sharp μέσω NPM

 npm install sharp 

Αλλαγή μεγέθους εικόνων μέσω του Free JavaScript API

Η βιβλιοθήκη ανοιχτού κώδικα επιτρέπει σε JavaScript προγραμματιστές να επαναφέρουν τις εικόνες προγραμματικά. Το Sharp σας επιτρέπει να μετατρέψετε μεγάλες μορφές εικόνας σε μικρότερα μεγέθη που είναι συμβατά με διαφορετικές εφαρμογές web. Με τη βοήθεια της απότομης βιβλιοθήκης, το Sharp έχει 4 έως 5 φορές ταχύτερη ταχύτητα επεξεργασίας εικόνας σε σύγκριση με άλλους μετατροπείς μορφής εικόνας όπως ImageMagick ή GraphicsMagick. Η Sharp εξασφαλίζει ότι η ποιότητα της εικόνας δεν διακυβεύεται από την μονάδα δειγματοληψίας Lancers.

Διαβάστε και επαναλάβετε τις εικόνες μέσω 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)

Επεξεργασία εικόνας μέσω δωρεάν JavaScript API

Η απότομη βιβλιοθήκη επιτρέπει στους προγραμματιστές λογισμικού να επεξεργαστούν την εικόνα στο JavaScript πλαίσιο. Μπορείτε να εκτελέσετε λειτουργίες εικόνας, όπως κατοικία εικόνας, περιστροφή, εξαγωγή, διορθώσεις και σύνθεση. Το Sharp είναι συμβατό με MacOS, Windows και Linux συστήματα και δεν απαιτεί πρόσθετες εγκαταστάσεις κατά τη χρήση της έκδοσης 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 εφαρμογές

Η ευκρινής βιβλιοθήκη ανοιχτού κώδικα έχει συμπεριλάβει πλήρη υποστήριξη για τη συνεργασία με την Image Metadata μέσα σε JavaScript εφαρμογές. Η βιβλιοθήκη παρέχει γρήγορη πρόσβαση σε μεταδεδομένα εικόνας χωρίς την αποκωδικοποίηση τυχόν συμπιεσμένων δεδομένων pixel. Έχει συμπεριλάβει υποστήριξη για πολλές σημαντικές ιδιότητες όπως το μέγεθος της εικόνας, το ύψος, το πλάτος, το βάθος, την πυκνότητα, το χώρο, τα επίπεδα, το υπόβαθρο, την έξοδο, τη σελίδα και πολλά άλλα. Μπορείτε επίσης να έχετε εύκολη πρόσβαση σε στατιστικές εικόνες που παράγονται από pixel για κάθε κανάλι στην εικόνα όπως min, max, άθροισμα, μέση, ευκρίνεια, εντροπία και πολλά άλλα.

Μεταδεδομένα Πρόσβασης μέσω 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
  });
 Ελληνικά