Ensure precision of trim threshold, update docs #914

This commit is contained in:
Lovell Fuller 2018-10-02 12:45:37 +01:00
parent 21fbe546b8
commit 60438ebfe5
4 changed files with 7 additions and 7 deletions

View File

@ -187,11 +187,11 @@ Returns **Sharp**
## 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
- `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

View File

@ -327,15 +327,16 @@ namespace sharp {
/*
Trim an image
*/
VImage Trim(VImage image, int const threshold) {
VImage Trim(VImage image, double const threshold) {
// Top-left pixel provides the background colour
VImage background = image.extract_area(0, 0, 1, 1);
if (HasAlpha(background)) {
background = background.flatten();
}
int top, width, height;
int const left = image.find_trim(&top, &width, &height,
VImage::option()->set("background", background(0, 0)));
int const left = image.find_trim(&top, &width, &height, VImage::option()
->set("background", background(0, 0))
->set("threshold", threshold));
if (width == 0 || height == 0) {
throw VError("Unexpected error while trimming. Try to lower the tolerance");
}

View File

@ -100,7 +100,7 @@ namespace sharp {
/*
Trim an image
*/
VImage Trim(VImage image, int const threshold);
VImage Trim(VImage image, double const threshold);
/*
* Linear adjustment (a * in + b)

View File

@ -29,7 +29,6 @@ describe('Trim borders', function () {
if (err) throw err;
assert.strictEqual('jpeg', info.format);
assert.strictEqual(300, info.width);
assert.strictEqual(300, info.height);
fixtures.assertSimilar(expected, data, done);
});
});