mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require('assert');
|
|
|
|
var sharp = require('../../index');
|
|
var fixtures = require('../fixtures');
|
|
|
|
describe('Convolve', function() {
|
|
|
|
it('specific convolution kernel 1', function(done) {
|
|
sharp(fixtures.inputPngStripesV)
|
|
.resize(320, 240)
|
|
.convolve(
|
|
{
|
|
'width': 3,
|
|
'height': 3,
|
|
'scale': 50,
|
|
'offset': 0,
|
|
'kernel': [ 10, 20, 10,
|
|
0, 0, 0,
|
|
10, 20, 10 ]
|
|
})
|
|
.toBuffer(function(err, data, info) {
|
|
assert.strictEqual('png', info.format);
|
|
assert.strictEqual(320, info.width);
|
|
assert.strictEqual(240, info.height);
|
|
fixtures.assertSimilar(fixtures.expected('conv-1.png'), data, done);
|
|
});
|
|
});
|
|
|
|
it('specific convolution kernel 2', function(done) {
|
|
sharp(fixtures.inputPngStripesH)
|
|
.resize(320, 240)
|
|
.convolve(
|
|
{
|
|
'width': 3,
|
|
'height': 3,
|
|
'kernel': [ 1, 0, 1,
|
|
2, 0, 2,
|
|
1, 0, 1 ]
|
|
})
|
|
.toBuffer(function(err, data, info) {
|
|
assert.strictEqual('png', info.format);
|
|
assert.strictEqual(320, info.width);
|
|
assert.strictEqual(240, info.height);
|
|
fixtures.assertSimilar(fixtures.expected('conv-2.png'), data, done);
|
|
});
|
|
});
|
|
|
|
it('invalid kernel specification: no data', function() {
|
|
assert.throws(function() {
|
|
sharp(fixtures.inputJpg).convolve(
|
|
{
|
|
'width': 3,
|
|
'height': 3,
|
|
'kernel': []
|
|
});
|
|
});
|
|
});
|
|
|
|
it('invalid kernel specification: bad data format', function() {
|
|
assert.throws(function() {
|
|
sharp(fixtures.inputJpg).convolve(
|
|
{
|
|
'width': 3,
|
|
'height': 3,
|
|
'kernel': [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
|
|
});
|
|
});
|
|
});
|
|
|
|
it('invalid kernel specification: wrong width', function() {
|
|
assert.throws(function() {
|
|
sharp(fixtures.inputJpg).convolve(
|
|
{
|
|
'width': 3,
|
|
'height': 4,
|
|
'kernel': [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
});
|
|
});
|
|
});
|
|
});
|