Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Node.js wrapper for cwebp binary
npm install cwebp
You can get WebP source, precompiled binaries and installation instructions from its official website, or from its downloads repository.
Linux users may use this installation script to authomatically download and install latest WebP binaries:
curl -s https://raw.github.com/Intervox/node-webp/latest/bin/install_webp | sudo bash
MacOS users may install WebP using homebrew:
brew install webp
As an alternative you may install webp as npm module:
npm install webp
var Webp = require('cwebp');
var webp = new Webp(source);
or
var webp = Webp(source); // new is optional
By default node-webp
looks for cwebp
binary in your $PATH
.
var Webp = require('cwebp');
var binPath = require('webp').cwebp;
var webp = new Webp(source, binPath);
var Webp = require('cwebp');
Webp.bin = require('webp').cwebp;
var webp = new Webp(source);
When source is a string node-webp
treats it as a file path.
var Webp = require('cwebp');
var webp = new Webp('image.jpeg');
It also accepts Buffers and Streams.
var webp = new Webp(buffer);
var webp = new Webp(stream);
webp.write('image.webp', function(err) {
console.log('converted');
});
webp.toBuffer(function(err, buffer) {
// ...
});
webp.stream(function(err, stream) {
// ...
});
Currently WebP library have no inner support for streaming, so it only works with files.
So, when Buffer or Stream is used node-webp
creates a temporary file to store its content.
To prevent leaks node-webp
creates temporary files only when .write()
, .stream()
or .toBuffer()
is called.
It removes all temporary files after conversion, but before triggering a callback.
So, converting Stream into a Buffer will cause two temporary files to be created and then removed.
It also means that node-webp
will start listening for new data in the source stream only when .write()
, .stream()
or .toBuffer()
is called.
node-webp
supports A+ promises.
webp.write('image.webp').then(function() {
// ...
});
webp.toBuffer().then(function(buffer) {
// ...
});
webp.stream().then(function(stream) {
// ...
});
node-webp
use when library.
node-webp
provides helper function for most of cwebp
conversion options. For the full list of available helpers see methods.json file.
webp.quality(60);
webp.command('-d', 'dump.pgm');
node-webp
returns any error reported by cwebp
. By default it uses standard cwebp
error reporting mode, but it's possible to enable verbose error reporting.
var Webp = require('cwebp');
new Webp(source).verbose().toBuffer(function (err, res) {
// err.message contains verbose error
});
var Webp = require('cwebp');
Webp.verbose = true;
new Webp(source).toBuffer(function (err, res) {
// err.message contains verbose error
});
FAQs
node.js wrapper for cwebp and dwebp binaries from WebP image processing utility
The npm package cwebp receives a total of 530 weekly downloads. As such, cwebp popularity was classified as not popular.
We found that cwebp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.