mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
From here on in, this module will be using the bleeding edge version of libvips. Why? It just keeps getting faster.
This commit is contained in:
parent
21f12e74ba
commit
dde9e94850
12
README.md
12
README.md
@ -19,16 +19,11 @@ Performance is 4x-8x faster than ImageMagick and 2x-4x faster than GraphicsMagic
|
|||||||
|
|
||||||
* Node.js v0.8+
|
* Node.js v0.8+
|
||||||
* node-gyp
|
* node-gyp
|
||||||
* libvips-dev 7.28+ (7.36+ for optimal JPEG Huffman coding)
|
* [libvips](https://github.com/jcupitt/libvips) v7.37+
|
||||||
|
|
||||||
```
|
For the sharpest results, please compile libvips from source.
|
||||||
sudo npm install -g node-gyp
|
|
||||||
sudo apt-get install libvips-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
When installed as a package, please symlink `vips-7.28.pc` (or later, installed with libvips-dev) as `/usr/lib/pkgconfig/vips.pc`. To do this in Ubuntu 13.04 (64-bit), use:
|
If you prefer to run a stable, package-managed environment such as Ubuntu 12.04 LTS, [v0.0.3](https://github.com/lovell/sharp/tree/v0.0.3) will work with the libvips-dev package.
|
||||||
|
|
||||||
sudo ln -s /usr/lib/x86_64-linux-gnu/pkgconfig/vips-7.28.pc /usr/lib/pkgconfig/vips.pc
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
@ -84,7 +79,6 @@ sharp.embedBlack("input.png", "output.png", 200, 300, function(err) {
|
|||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
npm install --dev sharp
|
|
||||||
npm test
|
npm test
|
||||||
|
|
||||||
## Performance
|
## Performance
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sharp",
|
"name": "sharp",
|
||||||
"version": "0.0.5",
|
"version": "0.0.6",
|
||||||
"author": "Lovell Fuller",
|
"author": "Lovell Fuller",
|
||||||
"description": "High performance module to resize JPEG and PNG images using the libvips image processing library",
|
"description": "High performance module to resize JPEG and PNG images using the libvips image processing library",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -126,12 +126,12 @@ void ResizeAsync(uv_work_t *work) {
|
|||||||
img = t[3];
|
img = t[3];
|
||||||
|
|
||||||
if (EndsWith(baton->dst, ".jpg") || EndsWith(baton->dst, ".jpeg")) {
|
if (EndsWith(baton->dst, ".jpg") || EndsWith(baton->dst, ".jpeg")) {
|
||||||
if (vips_jpegsave(img, baton->dst.c_str(), "Q", 80, "profile", "none", "optimize_coding", TRUE, NULL)) {
|
if (vips_foreign_save(img, baton->dst.c_str(), "strip", TRUE, "Q", 80, "optimize_coding", TRUE, NULL)) {
|
||||||
(baton->err).append(vips_error_buffer());
|
(baton->err).append(vips_error_buffer());
|
||||||
vips_error_clear();
|
vips_error_clear();
|
||||||
}
|
}
|
||||||
} else if (EndsWith(baton->dst, ".png")) {
|
} else if (EndsWith(baton->dst, ".png")) {
|
||||||
if (vips_pngsave(img, baton->dst.c_str(), "compression", 6, "interlace", FALSE, NULL)) {
|
if (vips_foreign_save(img, baton->dst.c_str(), "strip", TRUE, "compression", 6, "interlace", FALSE, NULL)) {
|
||||||
(baton->err).append(vips_error_buffer());
|
(baton->err).append(vips_error_buffer());
|
||||||
vips_error_clear();
|
vips_error_clear();
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,8 @@ async.series({
|
|||||||
}).run();
|
}).run();
|
||||||
}
|
}
|
||||||
}, function(err, results) {
|
}, function(err, results) {
|
||||||
results.forEach(function(format, fastest) {
|
assert(!err, err);
|
||||||
assert(fastest === "sharp", "sharp was slower than " + fastest + " for " + format);
|
Object.keys(results).forEach(function(format) {
|
||||||
|
assert(results[format] == "sharp", "sharp was slower than " + results[format] + " for " + format);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user