mirror of
https://github.com/lovell/sharp.git
synced 2025-07-13 20:30:14 +02:00
Ensure precision of trim threshold, update docs #914
This commit is contained in:
parent
21fbe546b8
commit
60438ebfe5
@ -187,11 +187,11 @@ Returns **Sharp**
|
|||||||
|
|
||||||
## trim
|
## trim
|
||||||
|
|
||||||
Trim "boring" pixels from all edges that contain values within a percentage similarity of the top-left pixel.
|
Trim "boring" pixels from all edges that contain values similar to the top-left pixel.
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
- `tolerance` **[Number][7]** value between 1 and 99 representing the percentage similarity. (optional, default `10`)
|
- `threshold` **[Number][7]** the allowed difference from the top-left pixel, a number greater than zero. (optional, default `10`)
|
||||||
|
|
||||||
|
|
||||||
- Throws **[Error][8]** Invalid parameters
|
- Throws **[Error][8]** Invalid parameters
|
||||||
|
@ -327,15 +327,16 @@ namespace sharp {
|
|||||||
/*
|
/*
|
||||||
Trim an image
|
Trim an image
|
||||||
*/
|
*/
|
||||||
VImage Trim(VImage image, int const threshold) {
|
VImage Trim(VImage image, double const threshold) {
|
||||||
// Top-left pixel provides the background colour
|
// Top-left pixel provides the background colour
|
||||||
VImage background = image.extract_area(0, 0, 1, 1);
|
VImage background = image.extract_area(0, 0, 1, 1);
|
||||||
if (HasAlpha(background)) {
|
if (HasAlpha(background)) {
|
||||||
background = background.flatten();
|
background = background.flatten();
|
||||||
}
|
}
|
||||||
int top, width, height;
|
int top, width, height;
|
||||||
int const left = image.find_trim(&top, &width, &height,
|
int const left = image.find_trim(&top, &width, &height, VImage::option()
|
||||||
VImage::option()->set("background", background(0, 0)));
|
->set("background", background(0, 0))
|
||||||
|
->set("threshold", threshold));
|
||||||
if (width == 0 || height == 0) {
|
if (width == 0 || height == 0) {
|
||||||
throw VError("Unexpected error while trimming. Try to lower the tolerance");
|
throw VError("Unexpected error while trimming. Try to lower the tolerance");
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ namespace sharp {
|
|||||||
/*
|
/*
|
||||||
Trim an image
|
Trim an image
|
||||||
*/
|
*/
|
||||||
VImage Trim(VImage image, int const threshold);
|
VImage Trim(VImage image, double const threshold);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Linear adjustment (a * in + b)
|
* Linear adjustment (a * in + b)
|
||||||
|
@ -29,7 +29,6 @@ describe('Trim borders', function () {
|
|||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.strictEqual('jpeg', info.format);
|
assert.strictEqual('jpeg', info.format);
|
||||||
assert.strictEqual(300, info.width);
|
assert.strictEqual(300, info.width);
|
||||||
assert.strictEqual(300, info.height);
|
|
||||||
fixtures.assertSimilar(expected, data, done);
|
fixtures.assertSimilar(expected, data, done);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user