OpetusvalikkoSisällysluettelo tällä sivulla

Rakentaja

Sharp

Sharp

Emits: Sharp#event:info, Sharp#event:warning

new

new Sharp([input], [options])

Rakentaja tehdas luoda esimerkki terävä, johon lisämenetelmiä on ketjutettu.

Tästä objektista voidaan suoratoistaa JPEG-, PNG-, WebP-, GIF-, AVIF- tai TIFF-muotoisia kuvatietoja. Kun käytät Stream-pohjaista lähtöä, johdetut attribuutit ovat saatavilla tietotapahtumasta.

Käsittelyn aikana kohdatut ei-kriittiset ongelmat lähetetään varoitustapahtumina.

Toteuttaa stream.Duplex-luokan.

Kun animoidusta kuvasta ladataan useampi kuin yksi sivu/kehys, ne yhdistetään pystysuoraan pinotuksi "vessarullan" kuvaksi, jossa kokonaiskorkeus on [sivun korkeus] kerrottuna sivujen määrällä.

Throws

  • Virhe Virheelliset parametrit
ParamTyyppiOletusKuvaus
[input]Buffer | ArrayBuffer | Uint8Array | Uint8ClampedArray | Int8Array | Uint16Array | Int16Array | Uint32Array | Int32Array | Float32Array | Float64Array | stringjos sellainen on, se voi olla puskuri / ArrayBuffer / Uint8Array / Uint8ClampedArray, joka sisältää JPEG-, PNG-, WebP-, AVIF-, GIF-, SVG- tai TIFF-kuvadataa, tai TypedArray, joka sisältää raakapikselikuvadataa, tai merkkijono, joka sisältää tiedostojärjestelmän polun JPEG-tiedostoon, PNG-, WebP-, AVIF-, GIF-, SVG- tai TIFF-kuvatiedosto. JPEG-, PNG-, WebP-, AVIF-, GIF-, SVG-, TIFF- tai raakapikselikuvadataa voidaan suoratoistaa objektiin, kun niitä ei ole.
[options]Objectjos se on olemassa, se on objekti, jolla on valinnaiset attribuutit.
[options.failOn]string"'warning'"Milloin virheellisten pikselitietojen käsittely keskeytetään, jokin seuraavista (herkkyysjärjestyksessä, vähiten useimmille): "ei mitään", "typistynyt", "virhe", "varoitus". Korkeammat tasot tarkoittavat alhaisempia tasoja. Virheelliset metatiedot keskeytyvät aina.
[options.limitInputPixels]number | boolean268402689Älä käsittele syöttökuvia, joissa pikselien määrä (leveys x korkeus) ylittää tämän rajan. Olettaa, että syötettyjen metatietojen sisältämiin kuviin voidaan luottaa. Kiinteä pikselien lukumäärä, nolla tai epätosi rajan poistamiseksi, tosi käyttää oletusrajaa 268402689 (0x3FFF x 0x3FFF).
[options.unlimited]booleanfalseAseta tämä arvoksi tosi, jos haluat poistaa turvaominaisuudet, jotka estävät muistin kulumisen (JPEG, PNG, SVG, HEIF).
[options.sequentialRead]booleantrueAseta tämä arvoksi false, jos haluat käyttää satunnaiskäyttöä peräkkäisen lukemisen sijaan. Jotkut toiminnot tekevät tämän automaattisesti.
[options.density]number72numero, joka edustaa DPI:tä vektorikuville alueella 1–100 000.
[options.ignoreIcc]numberfalsetulisiko upotettu ICC-profiili, jos sellainen on, jättää huomiotta.
[options.pages]number1Poimittavien sivujen määrä monisivuista syöttöä varten (GIF, WebP, TIFF), käytä arvoa -1 kaikille sivuille.
[options.page]number0Sivunumero, josta poimiminen aloitetaan monisivuista syöttöä varten (GIF, WebP, TIFF), nollaperusteinen.
[options.subifd]number-1subIFD (Sub Image File Directory), joka puretaan OME-TIFF:lle, oletuksena pääkuva.
[options.level]number0taso poimia monitasoisesta syötteestä (OpenSlide), nollaperusteinen.
[options.animated]booleanfalseAseta arvoksi tosi, jos haluat lukea animoidun kuvan (GIF, WebP, TIFF) kaikki kehykset/sivut. Tämä vastaa sivujen arvoa -1.
[options.raw]Objectkuvaa raakoja pikselitulokuvatietoja. Katso raw() pikselien järjestystä varten.
[options.raw.width]numberkokonaismäärä pikseleitä leveä.
[options.raw.height]numberpikselien kokonaismäärä korkea.
[options.raw.channels]numberKanavien kokonaismäärä, 1-4.
[options.raw.premultiplied]booleanmäärittää, että raakasyöttö on jo esikerrotettu ja asetettu arvoon tosi, jotta vältetään kuvan terävä esikerto. (valinnainen, oletuksena false)
[options.create]Objectkuvaa uutta luotavaa kuvaa.
[options.create.width]numberkokonaismäärä pikseleitä leveä.
[options.create.height]numberpikselien kokonaismäärä korkea.
[options.create.channels]numberkokonaismäärä kanavia, joko 3 (RGB) tai 4 (RGBA).
[options.create.background]string | Objectjäsentää värimoduuli poimimaan arvot punaiselle, vihreälle, siniselle ja alfalle.
[options.create.noise]Objectkuvaa syntyvää melua.
[options.create.noise.type]stringtyyppistä kohinaa, tällä hetkellä tuetaan vain Gaussia.
[options.create.noise.mean]numbertuotetun kohinan pikselien keskiarvo.
[options.create.noise.sigma]numbergeneroidun kohinan pikselien keskihajonta.
[options.text]Objectkuvaa uutta luotavaa tekstikuvaa.
[options.text.text]stringteksti, joka renderöidään UTF-8-merkkijonona. Se voi sisältää Pango-merkinnät, esimerkiksi <i>Le</i>Monde.
[options.text.font]stringfontin nimi, jolla renderöidä.
[options.text.fontfile]stringabsoluuttinen tiedostojärjestelmän polku fonttitiedostoon, jota fontti voi käyttää.
[options.text.width]number0Pikselien kokonaismäärä sanan rivittämistä varten. Tätä leveämmät tekstirivit katkeavat sanarajoista.
[options.text.height]number0Suurin pikseleiden kokonaismäärä. Kun dpi on määritetty, se ohitetaan ja teksti sopii automaattisesti leveyden ja korkeuden määrittelemään pikseliresoluutioon. Ohitetaan, jos leveyttä ei ole määritetty tai asetettu arvoon 0.
[options.text.align]string"'left'"Tasaustyyli moniriviselle tekstille ('vasen', 'keskellä', 'keskellä', 'oikealla').
[options.text.justify]booleanfalseAseta tämä arvoksi tosi, jos haluat käyttää tekstin perusteluja.
[options.text.dpi]number72resoluutio (koko), jolla teksti renderöidään. Ei vaikuta, jos korkeus on määritetty.
[options.text.rgba]booleanfalseaseta tämä arvoon tosi ottaaksesi RGBA-lähdön käyttöön. Tästä on hyötyä väriemojien hahmontamisessa tai pango-merkintäominaisuuksien, kuten <span foreground="red">Red!</span>, tukemisessa.
[options.text.spacing]number0tekstirivin korkeus pisteissä. Käyttää kirjasinrivin korkeutta, jos sitä ei ole määritetty.
[options.text.wrap]string"'word'"sanan rivitystyyli, kun leveys on annettu, jokin seuraavista: 'word', 'char', 'word-char' (ensisijainen sana, varamerkki merkiksi) tai 'ei mitään'.

Esimerkki

sharp('input.jpg')
  .resize(300, 200)
  .toFile('output.jpg', function(err) {
    // output.jpg is a 300 pixels wide and 200 pixels high image
    // containing a scaled and cropped version of input.jpg
  });

Esimerkki

// Read image data from remote URL,
// resize to 300 pixels wide,
// emit an 'info' event with calculated dimensions
// and finally write image data to writableStream
const { body } = fetch('https://...');
const readableStream = Readable.fromWeb(body);
const transformer = sharp()
  .resize(300)
  .on('info', ({ height }) => {
    console.log(`Image height is ${height}`);
  });
readableStream.pipe(transformer).pipe(writableStream);

Esimerkki

// Create a blank 300x200 PNG image of semi-translucent red pixels
sharp({
  create: {
    width: 300,
    height: 200,
    channels: 4,
    background: { r: 255, g: 0, b: 0, alpha: 0.5 }
  }
})
.png()
.toBuffer()
.then( ... );

Esimerkki

// Convert an animated GIF to an animated WebP
await sharp('in.gif', { animated: true }).toFile('out.webp');

Esimerkki

// Read a raw array of pixels and save it to a png
const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray
const image = sharp(input, {
  // because the input does not contain its dimensions or how many channels it has
  // we need to specify it in the constructor options
  raw: {
    width: 2,
    height: 1,
    channels: 3
  }
});
await image.toFile('my-two-pixels.png');

Esimerkki

// Generate RGB Gaussian noise
await sharp({
  create: {
    width: 300,
    height: 200,
    channels: 3,
    noise: {
      type: 'gaussian',
      mean: 128,
      sigma: 30
    }
 }
}).toFile('noise.png');

Esimerkki

// Generate an image from text
await sharp({
  text: {
    text: 'Hello, world!',
    width: 400, // max width
    height: 300 // max height
  }
}).toFile('text_bw.png');

Esimerkki

// Generate an rgba image from text using pango markup and font
await sharp({
  text: {
    text: '<span foreground="red">Red!</span><span background="cyan">blue</span>',
    font: 'sans',
    rgba: true,
    dpi: 300
  }
}).toFile('text_rgba.png');

clone

clone() ⇒ Sharp

Ota "tilannekuva" Sharp-esiintymästä ja palauta uusi ilmentymä. Kloonatut ilmentymät perivät pääesiintymänsä syötteen. Tämä sallii useiden lähtövirtojen ja siten useiden käsittelyputkien jakamisen yhden tulovirran.

Esimerkki

const pipeline = sharp().rotate();
pipeline.clone().resize(800, 600).pipe(firstWritableStream);
pipeline.clone().extract({ left: 20, top: 20, width: 100, height: 100 }).pipe(secondWritableStream);
readableStream.pipe(pipeline);
// firstWritableStream receives auto-rotated, resized readableStream
// secondWritableStream receives auto-rotated, extracted region of readableStream

Esimerkki

// Create a pipeline that will download an image, resize it and format it to different files
// Using Promises to know when the pipeline is complete
const fs = require("fs");
const got = require("got");
const sharpStream = sharp({ failOn: 'none' });

const promises = [];

promises.push(
  sharpStream
    .clone()
    .jpeg({ quality: 100 })
    .toFile("originalFile.jpg")
);

promises.push(
  sharpStream
    .clone()
    .resize({ width: 500 })
    .jpeg({ quality: 80 })
    .toFile("optimized-500.jpg")
);

promises.push(
  sharpStream
    .clone()
    .resize({ width: 500 })
    .webp({ quality: 80 })
    .toFile("optimized-500.webp")
);

// https://github.com/sindresorhus/got/blob/main/documentation/3-streams.md
got.stream("https://www.example.com/some-file.jpg").pipe(sharpStream);

Promise.all(promises)
  .then(res => { console.log("Done!", res); })
  .catch(err => {
    console.error("Error processing files, let's clean it up", err);
    try {
      fs.unlinkSync("originalFile.jpg");
      fs.unlinkSync("optimized-500.jpg");
      fs.unlinkSync("optimized-500.webp");
    } catch (e) {}
  });
Kommenttilista
Ladataan...
Sisällysluettelo tällä sivulla